How to link markers with lines in for loop

3 ビュー (過去 30 日間)
Mohammed Sadeq
Mohammed Sadeq 2016 年 1 月 14 日
コメント済み: harjeet singh 2016 年 1 月 16 日
When I plot a graph using for loop with Matlab 2015a as below:
The plot look like this:
I want to connect each 'n' with line as follows:
How to do that?
Thanks..

採用された回答

harjeet singh
harjeet singh 2016 年 1 月 14 日
try to use this code
clear all
close all
clc
X=randint(5,100,[1 1000]);
Y=randint(1,100,[1 1000]);
for n=1:100
x=[];
y=[];
for k=1:5
x=[x X(k,n)];
y=[y Y(1,n)];
end
figure(1)
plot(y,x,'-o')
hold on
drawnow
end
  4 件のコメント
Mohammed Sadeq
Mohammed Sadeq 2016 年 1 月 15 日
I am not sure what you are doing @Stephen, are you here to answer the question or criticize other answers!
@harjeet, Thanks for your answer. I will accept it
harjeet singh
harjeet singh 2016 年 1 月 16 日
thanks @mohammed for accepting answer.

サインインしてコメントする。

その他の回答 (1 件)

Stephen23
Stephen23 2016 年 1 月 14 日
編集済み: Stephen23 2016 年 1 月 14 日
Solution: learn to program MATLAB code without using loops everywhere.
Although beginners think that loops are great for solving all of their problems, in fact MATLAB works best when you learn to perform your operations on all of arrays at once, in particular by writing vectorized code. So you can just pass the plot function your data matrices, and it will plot the columns of that matrix. This is clearly explained in the plot documentation.
>> X = [0.1,0.1,0.2,0.3,0.5;1.1,1.1,1.1,1.2,1.4]';
>> Y = [5,4,3,2,1;4,3,2,1,0]';
>> plot(X,Y,'-o')
>> grid on
>> legend({'one','two'})
See, no loops!
  3 件のコメント
Stephen23
Stephen23 2016 年 1 月 14 日
編集済み: Stephen23 2016 年 1 月 14 日
Your data is so huge that plot cannot handle it?
Interesting, because although plot will easily handle many millions of points (I just tried 1e7), it is senseless to attempt to plot so many points:
  • plotting more points than screen-pixels can show means that any extra points are just a waste of plotting power, and do not show in the final figure.
  • plotting many different curves results in a figure that is impossible for any human to make sense of.
And both of these will slow down your graphics thread, etc. In general removing loops and replacing these with vectorized code will make code faster, and more expandable to larger array sizes.
What do you imagine that you will see in a figure with millions of points?
How "huge" is your data? Can you please be more specific, i.e. give us a an actual size, and tell us why you need to plot millions of points.
Mohammed Sadeq
Mohammed Sadeq 2016 年 1 月 15 日
@Stephen, I believe you didn't understand my problem and your last comment prove it. Anyway, thanks for trying..

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeAnnotations についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by