【发布时间】:2016-05-28 12:55:55
【问题描述】:
我正在尝试使用 octave 进行数据近似项目,但在测试一些基本内容时遇到了一些麻烦。我对八度音阶不是很有经验,所以我希望有人能指出我正确的方向。
我正在尝试使用 Halton 序列生成x,y 点列表。我想将那些x,y 点插入peaks 函数以获得这些坐标的z 峰值。接下来,我想绘制那些x,y,z 点,以确保我的图类似于峰值图,但我的图看起来不对。
代码如下:
%13 for this example to compare to meshgrid
N = 13;
%creates a halton sequence for N and scales it between -3 to 3
seq = haltonseq(N, 2) * 6 – 3;
%save the x,y coordinate from the halton sequence
X = seq(:,1);
Y = seq(:,2);
%convert the x,y vector in matrixes
X = repmat(X, 1, N)';
Y = repmat(Y,1,N);
%get the z values for x,y
Z = peaks(X, Y);
%plot my x,y,z values
surf(X,Y,Z);
%plot meshgrid to compare to
[mX mY] = meshgrid(-3:0.5:3);
mZ = peaks(mX, mY);
surf(mX, mY, mZ);
Halton 序列是正确的,但我会将其包括在内以进行验证。这是在它被缩放到-3 和3 之间之后:
seq =
0.00000 -1.00000
-1.50000 1.00000
1.50000 -2.33333
-2.25000 -0.33333
0.75000 1.66667
-0.75000 -1.66667
2.25000 0.33333
-2.62500 2.33333
0.37500 -2.77778
-1.12500 -0.77778
1.87500 1.22222
-1.87500 -2.11111
1.12500 -0.11111
网格图:
哈尔顿图N = 13:
哈尔顿图N = 300:
现在,据我对这段代码的理解,Halton 序列图不应该像它那样,随着我增加N,它应该更类似于meshgrid 图,但它保持相同的变形形状。我不确定我要去哪里错了,有人可以指出我正确的方向吗?
注意:我现在将此代码与 Octave 一起使用,但我稍后也会将其与 Matlab 一起使用,因此我将其标记为两者。
【问题讨论】: