Difficulties in axes scaling on matrices: 500 values should be 200 Hz - how to handle?
4 次查看(过去 30 天)
显示 更早的评论
Hello community,
As described I have difficulties in scaling axes on 3d (or 2d) plots.
For example I have a 100x500 matrix = A
Due to the resolution in data aquisition I have 100 Values on the time axe y and 500 values on the frequency axe x.
I want an easy way in coding that those 500 values describing 200 Hz, and that those 100 Values describing 6 hours.
Until now I always changed the width of the matrix with a factor, so that I only have 200 values.
if true
% maxfr1=zeros(109,1);
maxfr2=zeros(109,1);
maxfr3=zeros(109,1);
maxfr4=zeros(109,1);
for i1= 1:109
maxfr1(i1,1)=maxidx_smooth1(i1,1)*0.39;
maxfr2(i1,1)=maxidx_smooth2(i1,1)*0.39;
maxfr3(i1,1)=maxidx_smooth3(i1,1)*0.39;
maxfr4(i1,1)=maxidx_smooth4(i1,1)*0.39;
end
end
When I plot a 2d or a 3d graph its shown correctly then. But this is very uncomfortable and erases my higher resolution in data aquisition. Until now I have not found a way to do it easily interactive (change ticks only adds or deletes values but is not changing the whole scale)...
I certainly need help :)
Thank you
0 个评论
采纳的回答
Jan
2012-9-10
编辑:Jan
2012-9-10
At first you could cleanup the posted code - you do not nee a loop:
maxfr1 = maxidx_smooth1 * 0.39;
maxfr2 = maxidx_smooth2 * 0.39;
maxfr3 = maxidx_smooth3 * 0.39;
maxfr4 = maxidx_smooth4 * 0.39;
It would be even easier, if you store the vectors in one matrix.
But I assume, I do not understand the actual problem.
[EDITED]
It would be clearer, if you post Matlab code, which reproduces your problem. I assume you need to specify the values of the X-direction:
y = rand(50, 10); % Smaller for simplicity
figure
plot(y); % Your problem, x-values are the indices
figure
x = linspace(0, 200, 50);
plot(x, y); % Scaled x-values
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Discrete Data Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!