# How to plot it?

3 views (last 30 days)
Ara on 13 Jul 2022
Commented: Ara on 16 Jul 2022
Dear All,
We have
a=1,2,3,4,5; (in a column 1)
b=-1000,10,0,20,-20; (in a column 2)
b_filtered=b(:,2)>=0;
plot (a,b_filtered);
How to plot these two values that after filtered they have two different dimensions?
Best,

Chunru on 13 Jul 2022
a = [1,2,3,4,5];
b = [-1000,10,0,20,-20];
idx = b>=0;
plot(a(idx), b(idx), 'o-');
##### 3 CommentsShow 1 older commentHide 1 older comment
Chunru on 16 Jul 2022
plot(a.a(idx,1), a.a(idx,2), 'o-');
Ara on 16 Jul 2022
Thank you.
your plot is different with the other answeres. I do not know which one is correct to adapt it to my code. Do you know?

### More Answers (3)

Mathieu NOE on 13 Jul 2022
hello
simply replace the negative values of b by NaN so the vector size remains the same
a=[1;2;3;4;5];
b= [-10;10;0;20;-20];
b_filtered=b;
b_filtered(b<0) = NaN;
plot (a,b,a,b_filtered,'dr');
##### 3 CommentsShow 1 older commentHide 1 older comment
Mathieu NOE on 13 Jul 2022
hello
both answers are correct and will display the exact same plot
I wanted to have both b and b_filtered the same size as a , because it seemed to me that you wanted it this way.
the other options as suggested by @Chunru works also , and if you want to have both b and b_filtered displayed , you can slightly modify his code :
it's up to you to pick the one you prefer
a = [1,2,3,4,5];
b = [-10,10,0,20,-20];
idx = b>=0;
plot(a,b,a(idx), b(idx), 'or');
Ara on 16 Jul 2022
Hello Mathieu,
The plot you provided is different with the plot above provided by another expert who response to my question. I am confuse as I do not know which one is correct and how to modify my code based on which solution. Would you please tell me which one is correct?

Ruchika P Barman on 13 Jul 2022
It is my understanding that you are trying to plot a and b_filtered. I believe b_filtered is supposed to contain the non-negative elements of b, please correct me if I'm wrong on this, I did not understand what exactly is (b(:,2)>=0) supposed to do? If I'm not wrong, we can retain the elements of a at the indices where b is not negative and plot a and b accordingly.
a=[1;2;3;4;5];
b= [-10;10;0;20;-20];
b(b<0)=NaN;
a(b<0)=NaN;
b_filtered=b;
p=plot (a,b_filtered,"red");

Ara on 13 Jul 2022
Thank you Ruchika, for your response.
it means second column of my data should be greater than zero. I do not know which answer is correct as the figure for second answer isnot the same with yours. You and the first answer are the same output.
I have to modify it in a large set of data.
##### 3 CommentsShow 1 older commentHide 1 older comment
Ara on 14 Jul 2022
Hello,
I meant second column of b, which is a column with many data.
Ara on 15 Jul 2022
Edited: Ara on 15 Jul 2022
I have "data" file. When I open it in matlab that consist of 12 coumns and one of them is b. So, b is a column that contain a full range of data in a one column.