Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 以倍频程绘制曲面会导致曲面不均匀吗?_Matlab_Plot_Octave - Fatal编程技术网

Matlab 以倍频程绘制曲面会导致曲面不均匀吗?

Matlab 以倍频程绘制曲面会导致曲面不均匀吗?,matlab,plot,octave,Matlab,Plot,Octave,我正试图用八度音阶来绘制所附的数据。第一列是X值,第二列是Y值,最后一列是Z值 我正在运行以下脚本: xVec = reshape(mat(:,1),25,9); yVec = reshape(mat(:,2),25,9); zVec = reshape(mat(:,3),25,9); surf(xVec,yVec,zVec); axis([0.15 0.85 0.15 0.85]); set(gca, 'XTick',0.20:0.05:0.80); set(gca, 'YTick',0

我正试图用八度音阶来绘制所附的数据。第一列是X值,第二列是Y值,最后一列是Z值

我正在运行以下脚本:

xVec = reshape(mat(:,1),25,9); 
yVec = reshape(mat(:,2),25,9); 
zVec = reshape(mat(:,3),25,9); 
surf(xVec,yVec,zVec);
axis([0.15 0.85 0.15 0.85]);
set(gca, 'XTick',0.20:0.05:0.80);
set(gca, 'YTick',0.20:0.05:0.80);
但我不断得到一个不平坦的表面,这是很难理解的。为什么呢?我错过了什么?

数据:

0.15 0.15 40.802
 0.15 0.2 40.673
 0.15 0.25 40.526
 0.15 0.3 40.83
 0.15 0.35 40.862
 0.15 0.4 40.652
 0.15 0.45 40.924
 0.15 0.5 40.774
 0.15 0.55 41.088
 0.15 0.6 40.749
 0.15 0.65 41.099
 0.15 0.7 41.753
 0.15 0.75 41.607
 0.15 0.8 41.911
 0.15 0.85 41.537
 0.2 0.15 39.809
 0.2 0.2 39.884
 0.2 0.25 40.595
 0.2 0.3 40.497
 0.2 0.35 40.863
 0.2 0.4 41.325
 0.2 0.45 40.916
 0.2 0.5 40.431
 0.2 0.55 40.583
 0.2 0.6 40.858
 0.2 0.65 40.548
 0.2 0.7 41.668
 0.2 0.75 41.863
 0.2 0.8 41.499
 0.2 0.85 41.903
 0.25 0.15 39.894
 0.25 0.2 39.686
 0.25 0.25 40.227
 0.25 0.3 40.625
 0.25 0.35 40.572
 0.25 0.4 41.034
 0.25 0.45 40.828
 0.25 0.5 40.802
 0.25 0.55 40.196
 0.25 0.6 40.493
 0.25 0.65 41.265
 0.25 0.7 40.963
 0.25 0.75 41.023
 0.25 0.8 41.396
 0.25 0.85 41.596
 0.3 0.15 39.546
 0.3 0.2 40.216
 0.3 0.25 39.535
 0.3 0.3 39.945
 0.3 0.35 40.108
 0.3 0.4 40.726
 0.3 0.45 40.187
 0.3 0.5 41.279
 0.3 0.55 40.747
 0.3 0.6 41.122
 0.3 0.65 40.91
 0.3 0.7 40.292
 0.3 0.75 41.04
 0.3 0.8 41.287
 0.3 0.85 42.023
 0.35 0.15 38.693
 0.35 0.2 40.269
 0.35 0.25 40.561
 0.35 0.3 40.536
 0.35 0.35 40.268
 0.35 0.4 39.947
 0.35 0.45 40.259
 0.35 0.5 40.146
 0.35 0.55 41.048
 0.35 0.6 40.263
 0.35 0.65 40.875
 0.35 0.7 41.281
 0.35 0.75 40.836
 0.35 0.8 41.322
 0.35 0.85 41.734
 0.4 0.15 39.321
 0.4 0.2 39.103
 0.4 0.25 39.694
 0.4 0.3 40.529
 0.4 0.35 40.272
 0.4 0.4 39.826
 0.4 0.45 40.224
 0.4 0.5 40.808
 0.4 0.55 40.66
 0.4 0.6 40.003
 0.4 0.65 41.626
 0.4 0.7 41.549
 0.4 0.75 41.523
 0.4 0.8 41.408
 0.4 0.85 41.545
 0.45 0.15 39.428
 0.45 0.2 39.53
 0.45 0.25 39.988
 0.45 0.3 40.039
 0.45 0.35 40.075
 0.45 0.4 40.206
 0.45 0.45 40.946
 0.45 0.5 41.027
 0.45 0.55 41.214
 0.45 0.6 40.98
 0.45 0.65 40.874
 0.45 0.7 41.483
 0.45 0.75 41.151
 0.45 0.8 41.123
 0.45 0.85 40.528
 0.5 0.15 39.477
 0.5 0.2 39.62
 0.5 0.25 40.265
 0.5 0.3 39.61
 0.5 0.35 40.109
 0.5 0.4 40.232
 0.5 0.45 40.212
 0.5 0.5 40.861
 0.5 0.55 39.665
 0.5 0.6 41.225
 0.5 0.65 40.577
 0.5 0.7 40.62
 0.5 0.75 41.244
 0.5 0.8 40.977
 0.5 0.85 41.753
 0.55 0.15 39.033
 0.55 0.2 39.769
 0.55 0.25 40.164
 0.55 0.3 40.351
 0.55 0.35 40.592
 0.55 0.4 40.227
 0.55 0.45 40.14
 0.55 0.5 40.734
 0.55 0.55 40.429
 0.55 0.6 40.701
 0.55 0.65 40.849
 0.55 0.7 40.596
 0.55 0.75 41.481
 0.55 0.8 41.27
 0.55 0.85 40.755
 0.6 0.15 38.944
 0.6 0.2 39.76
 0.6 0.25 39.051
 0.6 0.3 40.009
 0.6 0.35 39.84
 0.6 0.4 40.072
 0.6 0.45 41.282
 0.6 0.5 40.606
 0.6 0.55 40.98
 0.6 0.6 41.141
 0.6 0.65 40.111
 0.6 0.7 41.627
 0.6 0.75 41.798
 0.6 0.8 41.196
 0.6 0.85 41.35
 0.65 0.15 39.457
 0.65 0.2 39.38
 0.65 0.25 40.26
 0.65 0.3 40.142
 0.65 0.35 39.935
 0.65 0.4 40.496
 0.65 0.45 39.862
 0.65 0.5 40.665
 0.65 0.55 40.187
 0.65 0.6 40.955
 0.65 0.65 39.834
 0.65 0.7 40.641
 0.65 0.75 41.162
 0.65 0.8 41.028
 0.65 0.85 41.54
 0.7 0.15 38.938
 0.7 0.2 39.803
 0.7 0.25 39.485
 0.7 0.3 39.8
 0.7 0.35 39.459
 0.7 0.4 39.895
 0.7 0.45 40.203
 0.7 0.5 40.222
 0.7 0.55 40.176
 0.7 0.6 41.01
 0.7 0.65 41.433
 0.7 0.7 41.651
 0.7 0.75 41.018
 0.7 0.8 41.185
 0.7 0.85 41.216
 0.75 0.15 39.182
 0.75 0.2 38.856
 0.75 0.25 39.992
 0.75 0.3 40.005
 0.75 0.35 39.613
 0.75 0.4 39.526
 0.75 0.45 40.232
 0.75 0.5 40.45
 0.75 0.55 41.157
 0.75 0.6 40.578
 0.75 0.65 41.106
 0.75 0.7 41.252
 0.75 0.75 40.773
 0.75 0.8 41.207
 0.75 0.85 42.219
 0.8 0.15 39.33
 0.8 0.2 39.463
 0.8 0.25 39.435
 0.8 0.3 40.252
 0.8 0.35 39.819
 0.8 0.4 39.826
 0.8 0.45 40.506
 0.8 0.5 41.031
 0.8 0.55 40.666
 0.8 0.6 41.306
 0.8 0.65 40.674
 0.8 0.7 41.489
 0.8 0.75 40.956
 0.8 0.8 41.61
 0.8 0.85 41.099
 0.85 0.15 39.247
 0.85 0.2 38.983
 0.85 0.25 39.051
 0.85 0.3 39.098
 0.85 0.35 39.617
 0.85 0.4 40.541
 0.85 0.45 40.091
 0.85 0.5 40.435
 0.85 0.55 40.55
 0.85 0.6 40.204
 0.85 0.65 40.682
 0.85 0.7 40.965
 0.85 0.75 41.063
 0.85 0.8 41.113
 0.85 0.85 41.577

就我所见,在你们的数据中,X值每15点变化一次,Y和Z也是。 看起来你的整形不正确

尝试对代码进行下一个非常小的更改:

xVec = reshape(data(:,1),15,15); 
yVec = reshape(data(:,2),15,15); 
zVec = reshape(data(:,3),15,15); 
surf(xVec,yVec,zVec);
axis([0.15 0.85 0.15 0.85]);
set(gca, 'XTick',0.20:0.05:0.80);
set(gca, 'YTick',0.20:0.05:0.80);
输出:


好吧,据我所知,在你的数据中,X值每15点变化一次,Y和Z也会变化。 看起来你的整形不正确

尝试对代码进行下一个非常小的更改:

xVec = reshape(data(:,1),15,15); 
yVec = reshape(data(:,2),15,15); 
zVec = reshape(data(:,3),15,15); 
surf(xVec,yVec,zVec);
axis([0.15 0.85 0.15 0.85]);
set(gca, 'XTick',0.20:0.05:0.80);
set(gca, 'YTick',0.20:0.05:0.80);
输出:

(这只适用于matlab,所以我不知道octav是否有任何不同,但我不这么认为。)

问题是surf需要一种非常特殊的输入格式,它不适用于向量

您需要的功能是
griddata
,它在一个均匀的网格上插值任何3D或4D输入数据(这将是surf所需的输入)

它的工作原理有点像这样:

xVec=mat(:,1);
yVec=mat(:,2);
zVec=mat(:,3);
gridpoints = 100;
[xi, yi] = meshgrid(linspace(min(xVec),max(xVec),gridpoints),linspace(min(xVec),max(xVec),gridpoints));
zi = griddata(xVec,yVec,zVec,xi,yi);
surf(xi,yi,zi);
(这只适用于matlab,所以我不知道octav是否有任何不同,但我不这么认为。)

问题是surf需要一种非常特殊的输入格式,它不适用于向量

您需要的功能是
griddata
,它在一个均匀的网格上插值任何3D或4D输入数据(这将是surf所需的输入)

它的工作原理有点像这样:

xVec=mat(:,1);
yVec=mat(:,2);
zVec=mat(:,3);
gridpoints = 100;
[xi, yi] = meshgrid(linspace(min(xVec),max(xVec),gridpoints),linspace(min(xVec),max(xVec),gridpoints));
zi = griddata(xVec,yVec,zVec,xi,yi);
surf(xi,yi,zi);

哇,谢谢!我已经绞尽脑汁好几个小时了,你说得对!哇,谢谢!我已经绞尽脑汁好几个小时了,你说得对!