Plotting specific values of 2xn array based on values in first row

1 回表示 (過去 30 日間)
Zenid
Zenid 2015 年 9 月 22 日
回答済み: Rose 2015 年 9 月 22 日
Hello! I have 2xn arrays. The first row contains values between 1 and 6 that code specific events that happened at the timepoints that are saved in the second row. Something like this:
1 4 5 1 5
200 350 360 400 600
Goes on like that. It's probably really basic. I want to plot only the timepoints in the second row for the specified event codes in the first row. I hope this is clear. Thanks!

採用された回答

Sebastian Castro
Sebastian Castro 2015 年 9 月 22 日
編集済み: Sebastian Castro 2015 年 9 月 22 日
You want to be looking at row 1 for every index that matches a certain value... let's take 5 for this example.
row1 = x(1,:);
indices = (row1 == 5);
Then, you want to use those indices to index into row 2:
row2 = x(2,:);
output = row2(indices);
Now, this has a lot of intermediate variables, so you might instead want to do it all in one shot:
output = x(2,x(1,:)==5);
- Sebastian

その他の回答 (1 件)

Rose
Rose 2015 年 9 月 22 日
I think you mean like this:
>> x=[1 4 5 1 5;200 350 360 400 600];
>> plot(x(1,:),x(2,:))
You even can add more details to the plot or set the axis limits:
>> plot(x(2,:),x(1,:),'*','LineWidth',1);
>> axis([100 700 0 6]);
xlabel('Time')
ylabel('Values')

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by