[英]Create a contour plot in MATLAB with 3 vectors and x, y vectors on a logarithmic scale
我有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會崩潰。
有解決的想法嗎?
您可以使用meshgrid生成所需的網格,並在以后替換標簽。 您要查找的屬性稱為XTick和XTickLabel。 參見例如: http : //www.mathworks.com/matlabcentral/answers/92565
您需要使用對數標度以任何明智的方式查看結果。 實際上,這意味着您可能應該做
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');
我目前無法測試,因此這可能是個壞建議。 讓我知道它如何為您服務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.