Why does my function graph look like a net? How to improve it?
1 次查看(过去 30 天)
显示 更早的评论
Hi, I tried to plot a vector t against ft, a well-defined function. However after entering the following codes:
figure;plot(t,ft);xlabel('t');ylabel('ft');
I got the following graph, which looks wierd. As for each value t there should be only one value for ft. How could I improve the graph? I attached my data too. Any comments or suggestions are welcome. Thanks!
采纳的回答
Stephen23
2020-8-19
编辑:Stephen23
2020-8-19
"As for each value t there should be only one value for ft."
Each vector contains exactly 1681 elements, so that is true. But the t values are not monotonic increasing:
>> issorted(t)
ans = 0
>> nnz(find(diff(t)<=0))
ans = 40
and MATLAB plots the data in exactly the t-order that you tell it to, as one long zig-zag line. So far everything is working as documented and as expected.
However it appears that the time data repeats block of 41 elements, which I assume is the same for the data vector. If you expect each of those blocks of data to be displayed as a separate line, then the simplest way is to reshape the data into matrices:
>> Mft = reshape(ft,41,41);
>> Mt = reshape(t, 41,41);
>> plot(Mt,Mft)
Giving
更多回答(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!