在Matlab中绘制网格时的尺寸误差不一致

时间:2017-08-03 09:01:09

标签: matlab plot mesh

我是Matlab的新手,我想绘制一个网格。我的坐标是:

x = [30 34 38 40 44 48 50]

y = [1:5:20]

Z = [9.1 8.5 7.83 7.54 7.07 6.61 6.49 ; 
     14.5 8.96 8.21 7.71 7.07 6.61 6.4;
     13.37 13.4 10.2 9.4 9 7.3 7.9;
     12.09 12 12.14 11.96 13.58 14.12 14.311;
     14.97 10.77 11.87 12.4 13.62 14.19 14.94]

Ehen我试图在Matlab中绘制它,它给出了以下错误:

  

数据点坐标具有不一致的维度。

2 个答案:

答案 0 :(得分:2)

您确实不一致的维度,因为您需要y中的5个元素。你还需要一个矩阵Z,而不是一个矢量。

以下内容可让您入手:

y = [0:5:20]

%// reshape z in case z is a vector
z = reshape(Z,numel(y),numel(x))

figure(1)
%// mesh(x,y,z)
surf(x,y,z) % colored mesh

enter image description here

检查数据大小并根据需要调整整形!

答案 1 :(得分:2)

一般来说,如果XY是向量,length(X) = nlength(Y) = m,其中`[m,n] = size(Z)v。

在你的情况下:

length(x)
7

length(y)
4

size(Z)

1    35

所以你需要重塑Z

执行:

 x = [30 34 38 40 44 48 50]
 y = [0:5:20]
 Z = [9.1 8.5 7.83 7.54 7.07 6.61 6.49 ; 14.5 8.96 8.21 7.71 7.07 6.61 6.4; 13.37 13.4 10.2 9.4 9 7.3 7.9; 12.09 12 12.14 11.96 13.58 14.12 14.311; 14.97 10.77 11.87 12.4 13.62 14.19 14.94]
 Z = reshape(Z,numel(y),numel(x))
 mesh(x,y,Z)