我想用对数Y标度将多个值绘制在同一张图上。下面的代码将这些值绘制到一个线性刻度图上,并工作,但是试图用“半部曲”来更改“绘图”,从而输出一个空白图。
hold on;
for i = 1:10
[val1(i), val2, val3, val4] = myFunct(i, fileName);
end;
plot(val1);
hold off;我需要改变什么来创建一个Y标度是对数?
编辑代码:
hold on;
for i = 1:10
[val1(i), val2, val3, val4] = myFunct(i, fileName);
end;
val1(1) = 0.000001; %index 1 is always zero, index 2 may or may not be zero
val1(2) = 0.000001;
semilogy(val1);
hold off;上述代码的输出:

发布于 2014-04-17 17:13:07
hold on命令阻止从以前执行的常规plot到semilogy更新图形。要解决这个问题,您应该关闭图形并再次运行代码。
注意,如果只有一个绘图命令,就没有理由使用hold命令。hold的目的是使多个绘图命令能够在相同的图形中被覆盖。
发布于 2014-04-17 17:16:14
试试这个:
% Calculate
for i = 1:10
[val1(i), val2, val3, val4] = myFunct(i, fileName);
end
% Plot
figure;
plot(val1+eps);
set(gca, 'YScale','log');https://stackoverflow.com/questions/23136911
复制相似问题