2017-04-11 132 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 )]