我需要使用命令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对应值。
这看起来很简单,但我可以解决它。如果有人可以帮助我,我将非常感激。
提前致谢!
答案 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)]