Plotting specific values of 2xn array based on values in first row
3 views (last 30 days)
Show older comments
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!
0 Comments
Accepted Answer
Sebastian Castro
on 22 Sep 2015
Edited: Sebastian Castro
on 22 Sep 2015
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
0 Comments
More Answers (1)
Rose
on 22 Sep 2015
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')
0 Comments
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!