我以为我已经构建了一个没有错误的代码,但似乎没有,而且我很困惑为什么。我的矩阵A,B和C包含64x64矩阵中的值(可能会根据运行改变大小,但它们在一次运行中都具有相同的常量)。
s = size(A)
figure(1)
set(gcf, 'renderer', 'zbuffer');
quiver(1:s(2),1:s(1),A,B);
hold on;
pcolor(1:s(2),1:s(1),C);
figure(2)
surf(s(2),s(1),A);
figure(3)
surf(s(2),s(1),B);
figure(4)
surf(s(2),s(1),C);
它说
Error using surf (line 78)
Data dimensions must agree
我尝试使用size(A)进行验证,它是64x64,s(1)= 64,s(2)= 64。
我在s(1)之前放置了s(2),因为出于某种原因,surf将行维度应用于第三个参数的列(我对此非常困惑,但无论如何它都不是问题)。
如果你想在冲浪(X,Y,Z)描述中看到http://www.mathworks.com/help/matlab/ref/surf.html。
答案 0 :(得分:1)
对于surf(X,Y,Z)
X和Y必须是向量,而不是像你的情况那样的标量。在你的情况下,你应该放置1x64向量而不是s(1)。
你确定,冲浪是你想要的吗?