我有3个载体
x =[10^(-10) 10^(-9) 10^(-8) 10^(-7) 10^(-6) 10^(-5) 10^(-4) 10^(-3) 10^(-2)]
y =[10^(-10) 10^(-9) 10^(-8) 10^(-7) 10^(-6) 10^(-5) 10^(-4) 10^(-3) 10^(-2)]
和z这是从5到0.01的误差。
我需要创建一个等高线图。但是,我不能使用meshgrid,因为我的x和y轴上的步长应该非常小,当我尝试时,Matlab会崩溃。
关于解决它的任何想法?
答案 0 :(得分:0)
您可以使用meshgrid生成所需的网格并稍后替换标签。您正在寻找的属性称为XTick和XTickLabel。例如,请参阅:http://www.mathworks.com/matlabcentral/answers/92565
答案 1 :(得分:0)
您需要使用对数刻度以任何合理的方式查看结果。实际上,这意味着你应该做
x = logspace(-10, -2, 9);
y = logspace(-10, -2, 9);
logX = log(x);
logY = log(y);
[lxx lyy]=meshgrid(logX, logY);
然后像往常一样用
绘制轮廓contour(lxx, lyy, reshape(z, [9 9]));
最后,您需要注释轴以显示您正在使用对数刻度 - 或者您可以关闭刻度标签并将其替换为您自己的值。
或者,我想知道你是否可以使用你拥有的网格
[xx yy] = meshgrid(x, y);
在绘制轮廓后,执行
set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log');
我现在无法测试,所以这可能是一个糟糕的建议。让我知道它对你有用。