2017-04-11 35 views
0

我需要通過使用命令imagesc來幫助繪製兩個變量(兩個矩陣)。矩陣具有相同的大小,但我不知道如何正確編寫代碼以獲得正確的結果。如何使用命令imagesc來繪製兩個矩陣?

在我的問題中,x-ax是地面上的經度,y-ax是垂直位置-depth(Df) - 對此計算T,它表示T(Df)。總的想法是獲得一個溫度曲線。

clear all 
x=1:1:10; 

a=-0.5; b=0.5; 
topo = a + (b-a).*rand(1,10); 

df=-5:1:20; 

for i=1:length(x); 

d1=-5:1:topo(i);d1=d1'; 
d2=topo(i):1:20;d2=d2'; 
df=unique(vertcat(d1,d2)); 
d=df+topo(i); 

z=find(d<0); 
T1(z)= NaN; 

z=find(d>=0 & d<=20); 
T1(z)= 0.3*d(z).^2; 

%save into a matrix 
    Ti(:,i)=T1; 
Di(:,i)=df'; 
end 

hh=imagesc(x,df,Ti);colormap('jet'),set(hh,'AlphaData',~isnan(Ti)); 
set(gca,'YDir','reverse');hold on; 
plot(x,topo,'k');grid on; 

我已經嘗試了兩件事情:

1日。

Ti(:, i) = T1; 
Df(:, i) = df'; 

Cx{i} = T1; 
Cy{i} = df; 
Tf = [Cx; Cy]; 

hh = imagesc (x, Tf{:}); 

的出現這樣的錯誤:在於imagesc(線39)錯誤 HH =圖像(varargin {:}, '縮放', 'CDataMapping');

2nd。

hh = imagesc (x, Df(:), T1(:)); 

沒有工作。因爲我需要每一列的Ti都與Df的對應值相對應。

這看起來很簡單,但我可以解決它。如果有人能幫助我,我會很感激。

在此先感謝!

Print screen of the problem

+0

'size(Df)= size(Ti)'應該做什麼? –

+0

我很困惑你想要做什麼。 'image'及其姐妹函數'imagesc'被用來表示矩陣作爲圖像。您似乎想要繪製一個圖形(即一個變量作爲另一個函數的功能)。是對的嗎? –

+0

也許你打算'劇情(Df(:),T1(:))'? –

回答

0

你應該看看Matlab的幫助,於imagesc: 於imagesc(X,Y,C) - 或 - 於imagesc( '擴展數據',X,「YDATA,γ, 'CData的',C)

X - 1×N個向量爲水平座標

ý - 1×M個向量垂直座標

ç - N×M的矩陣與強度對每個點[X(I)中,y(j )]