命令
考虑以下代码:
这是MATLAB的结果: 而Octave生成的结果: MATLAB生成了一个正确的图形。这个Octave图形有什么问题?
我们为什么会得到两个不同的输出?是与“view”命令有关的问题吗?
编辑(错误报告后):已经为Ocatve 6.1修复了此问题:https://hg.savannah.gnu.org/hgweb/octave/raw-file/11072ea6a16c/scripts/plot/appearance/view.m
shading faceted
和shading interp
在MATLAB和Octave中产生不同的图形。考虑以下代码:
[X, Y] = meshgrid(0:2, 0:2);
Z = magic(3);
figure;
colormap('jet');
subplot(1, 3 ,1);
imagesc(Z);
axis xy
yticklabels({'0', '1', '2'})
yticks(1:3)
xticklabels({'0', '1', '2'})
xticks(1:3)
title('imagesc(Z)');
subplot(1,3,2);
surf(X, Y, Z);
shading faceted;
view([0,0,1]);
yticks(0:3)
xticks(0:3)
title('surf(X, Y, Z); shading faceted;');
subplot(1,3,3);
surf(X, Y, Z);
shading interp;
view([0,0,1]);
yticks(0:3)
xticks(0:3)
title('surf(X, Y, Z); shading interp;');
这是MATLAB的结果: 而Octave生成的结果: MATLAB生成了一个正确的图形。这个Octave图形有什么问题?
我们为什么会得到两个不同的输出?是与“view”命令有关的问题吗?
编辑(错误报告后):已经为Ocatve 6.1修复了此问题:https://hg.savannah.gnu.org/hgweb/octave/raw-file/11072ea6a16c/scripts/plot/appearance/view.m
y
轴。我怀疑这会产生很大的影响。也许 Octave 还以某种方式对输入进行了置换。 - Ander Biguriview([0, 0, -1])
似乎与MATLAB版本相比产生了可比较的输出。 - HansHirseview([0, 0, -1])
不会产生相同的结果。 - sci9view
就可以显示出可比较的图形,所以view
问题可能需要另外解决...尽管如此,Ander的评论仍然是正确的。 - HansHirsey
轴被反转了,还是x
和y
轴被交换了?再看一下颜色排列。我加入了一个xlabel('X axis')
的调用来澄清这个问题,在 Octave 中,似乎 X 轴最终出现在垂直轴上而不是水平轴上。 - Andrew Janke