如何使用命令imagesc绘制两个矩阵图?

时间:2017-04-11 21:31:26

标签: matlab matlab-figure matlab-guide

我需要使用命令imagesc帮助绘制两个变量(两个矩阵)。矩阵具有相同的大小,但我不知道如何正确编写代码以获得正确的结果。

在我的问题中,x - ax是地面上的经度,y - ax是垂直位置 - 深度(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;   

我尝试了两件事:

第一。

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

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

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

出现此错误:imagesc出错(第39行)     hh = image(varargin {:},&#39; CDataMapping&#39;,&#39; scaled&#39;);

第二

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

没有效果。因为我需要将每列Ti绘制成相应的Df对应值。

这看起来很简单,但我可以解决它。如果有人可以帮助我,我将非常感激。

提前致谢!

Print screen of the problem

1 个答案:

答案 0 :(得分:0)

您应该查看有关imagesc的Matlab帮助: imagesc(x,y,C) - 或 - imagesc('XData',x,'YData',y,'CData',C)

x - 水平坐标的1 x N向量

y - 垂直坐标的1 x M向量

C - N x M矩阵,每个点的强度为[x(i),y(j)]