Error using surf (line 71) Data dimensions must agree

Hello,
I have the kind of problem with my code and I don't understand why:
for it=1:2
xt(it,1)=it
for jt=1:3
yt(1,jt)=jt
zt(it,jt)=it+(jt-1)
end
end
figure;
surf(xt,yt,zt,'EdgeColor', 'None', 'facecolor', 'interp');
view(2);
colormap(jet(256));
c = colorbar;
Could you help me to find my error please?
Thanks in advance!

回答(1 个)

More like this?
for it=1:2
for jt=1:3
zt(it,jt)=it+(jt-1);
end
end
[x,y] = meshgrid(1:3,1:2);
figure;
surf(x,y,zt,'EdgeColor', 'None', 'facecolor', 'interp');
view(2);
colormap(jet(256));
c = colorbar;

4 个评论

I didn’t think xt and yt should be matrices too.
It works now, thank you!
@Hélène Parisot-Dupuis: xt and yt don't have to be matrices. If they are vectors, then zt must be of size numel(yt)-by-numel(xt). Your zt is of size numel(xt)-by-numel(yt), so if you transpose zt in the surf call, it runs without error.
for it=1:2
xt(it,1)=it;
for jt=1:3
yt(1,jt)=jt;
zt(it,jt)=it+(jt-1);
end
end
xt
xt = 2×1
1 2
yt
yt = 1×3
1 2 3
zt
zt = 2×3
1 2 3 2 3 4
figure;
surf(xt,yt,zt.','EdgeColor', 'None', 'facecolor', 'interp');
view(2);
colormap(jet(256));
c = colorbar;
Thank you very much for this clarification!

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Blue 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by