Generate new array with logarithmic spacing
17 次查看(过去 30 天)
显示 更早的评论
I have some experimental data (ydata and xdata), where xdata is an array with linear spacing. I would like to know how I can get my ydata in such a way that the elements are spaced as if xdata was on a logarithmic space.
In other words, I would like to have a new ydata vector (new_ydata) such that when I plot:
plot(new_ydata)
it would generate the same graph as when I plot:
semilogx(ydata)
Thanks
0 个评论
采纳的回答
Michael Haderlein
2015-4-7
I'm not sure what you want. You can get a logspaced array like this: Assume that x is your xdata and you want the log array to have 20 values:
xlog=logspace(log10(min(x)), log10(max(x)), 20)
ylog=interp1(x,y,xlog);
However, plot(xlog,ylog) will still look like plot(x,y), just the position of the markers differs. If you want to have the same optical output, you need to plot(log(x),y), but of course that will change the values on the axes (to the log values, obviously).
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Line Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!