How to scatter/plot a vector vs a cell array ?

3 visualizaciones (últimos 30 días)
Nora Khaled
Nora Khaled el 12 de Mzo. de 2020
Comentada: Adam Danz el 15 de Mzo. de 2020
Hello,
I have a vector w such that
w=0:0.1:5
I use this vector to get values saved in a cell array. such that for each element of w, I get 1,2, or 3 values stored in one cell as a vector.
as an example:
w=[0, 0.1, 0.2, 0.3, ....]
cellArray= {[3, -4, 5], [1], [-2], [3,3], ...}
I want to plot this such that w is the x axis and the corresponding values on the y axis?
  4 comentarios
Ahmed Anas
Ahmed Anas el 12 de Mzo. de 2020
Editada: Ahmed Anas el 12 de Mzo. de 2020
clc
clear all
w=[0, 0.1, 0.2, 0.3]
cellArray= {[3, -4, 5], [1], [-2], [3,3]}
X=0;
t(1)=1;
for i=2:size(cellArray,2)
t(i)=t(i-1)+size(cell2mat(cellArray(i-1)),2);
end
for i=1:size(cellArray,2)
y=X;
X=size(cell2mat(cellArray(i)),2);
X=y+X;
G(i)=X;
end
for i=1:size(cellArray,2)
New_X_Matrix(t(i):G(i))=w(i);
end
New_X_Matrix=New_X_Matrix
New_Y_Matrix=cell2mat(cellArray)
plot(New_X_Matrix,New_Y_Matrix,'ro-','linewidth',2)
Check this code, it will work accordingly and hope you will understand this, it is somehow generalized code.
New_X_Matrix is your desired x matrix
New_Y_Matrix is the y coordinates matrix
Nora Khaled
Nora Khaled el 15 de Mzo. de 2020
Thank you so much!
The code works perfectly.

Iniciar sesión para comentar.

Respuesta aceptada

Adam Danz
Adam Danz el 12 de Mzo. de 2020
w=[0, 0.1, 0.2, 0.3];
cellArray= {[3, -4, 5], [1], [-2], [3,3]};
figure()
hold on % important
arrayfun(@(i)plot(w(i),cellArray{i}, '-o'), 1:numel(w))
  3 comentarios
Nora Khaled
Nora Khaled el 15 de Mzo. de 2020
Thank you so much!
Adam Danz
Adam Danz el 15 de Mzo. de 2020
Glad I could help!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Line Plots en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by