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

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 个评论

What you want is at x=0 , y varies at 3, -4 , 5 , at x= 0.1 y =1, at x=0.2, y=-2, and so on
and you want to plot all these on the same figure?
Yes, this how I want to do it.
x=0, y=3, -4 , 5 it should be 3 points on the same graph.
x=0.1, y=1
..
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
Thank you so much!
The code works perfectly.

请先登录,再进行评论。

 采纳的回答

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))

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 2-D and 3-D Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by