MATLAB Answers

I have matrix A =[nx1] & B = [nx1] I want to combine them into C = [ nx2]

5 views (last 30 days)
I tried to do plot ( A,B) But it showed me 2 lines in one plot
Because I wanted to make A as x-axis & B as y axis in plot


Sign in to comment.

Accepted Answer

Guillaume on 3 Nov 2017
The title of your question has nothing to do with the body of your question.
To answer your title:
C = [A, B];
To answer the body:
plot(A, B)
is indeed the correct syntax to plot B as y values and A as x values. If you get 2 lines in the legend, that would be because B has twice the numbers of rows or columns of A. If A and B are indeed both nx1, you cannot get two lines.


Show 2 older comments
Rashid Hussein
Rashid Hussein on 4 Nov 2017
I have two matrices
A = [ nx1] & B = [ nx1]
When I plotted them it was fine in plot (A,B )
But when I tried to found the peaks by using
Data = [ A,B ] Pks = foundpeaks (Data) It didn't work Because plot (Data) showed me a figure of two lines *one line is for matrix A & second for B *
This is what I wanted to do
Guillaume on 4 Nov 2017
Do you realise how difficult you make it to help you? The title of your question had nothing to do with the body of the question, and now it turns out that neither had anything to do with your problem.
So all along, you weren't using plot(A, B) but plot([A, B]) which is not the same thing at all. plot([A, B]) is the same as plot((1:numel(A))', [A, B]) and will indeed plot two lines since you pass a matrix with two columns for the y values. What else would you expect.
But when I tried [...] It didn't work
Utterly. Useless. Statement. It didn't work, because you got an error? If so, what was the error?, because it didn't do what you expected? If so, what did you get and what did you expect?
Pks = foundpeaks (Data)
I am not aware of a function called foundpeaks in matlab. There is a findpeaks function in the signal processing toolbox. If you misspell function then yes, it is not going to work. Now, if that's what you were trying to do and A is indeed your x values, then passing [A, B] to findpeaks is indeed not going to work since as documented, the x value must be given as the second argument
pks = findpeaks(B, A);
Note that findpeaks has nothing to do with your plot. You don't need to plot anything for it to work.
Rashid Hussein
Rashid Hussein on 4 Nov 2017
Thank you and for the function name , then yes I misspelled the name here , anyway I have a clue of what I should do & thank you again sir .

Sign in to comment.

More Answers (1)

KL on 3 Nov 2017
Edited: KL on 3 Nov 2017
C = [A, B]
for plotting A against B, you are right,


Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by