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

3 views (last 30 days)
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 Comments
Ahmed Anas
Ahmed Anas on 12 Mar 2020
Edited: Ahmed Anas on 12 Mar 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 on 15 Mar 2020
Thank you so much!
The code works perfectly.

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 12 Mar 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 Comments

Sign in to comment.

More Answers (0)

Categories

Find more on Line Plots 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!