# How to store multiple y-data of arbitrary length for a given x and plot?

2 views (last 30 days)
Udvas.C on 4 Dec 2019
Commented: Udvas.C on 4 Dec 2019
I have a two column data where the each element of the second column have arbitrary length. e.g.
X=[1 2 3 4 5]'
Y= [[1 2 3]  [] [1 2 10 4] [1 5 2 0 3]]'
How to store this type of y-data in matlab and plot both X vs Y and Y vs X in a scatter plot? i.e. there should be three points on the graph for X=1, no point for X=0 and so on. Note: There can be no elements in some of the arrays of y.
Thanks

Raj on 4 Dec 2019
Edited: Raj on 4 Dec 2019
X=[1 2 3 4 5]';
Y= {[1 2 3]  [] [1 2 10 4] [1 5 2 0 3]}';
for ii=1:numel(X)
scatter((repelem(X(ii),numel(cell2mat(Y(ii))))),cell2mat(Y(ii)))
hold on
end

Udvas.C on 4 Dec 2019
Let x and y denote axes. I want the y-value be 1 for x=[1 2 3]; y-value be 2 for x= No point for y-value 3 and so on..
Raj on 4 Dec 2019
Something like this:
Y=[1 2 3 4 5]';
X= {[1 2 3]  [] [1 2 10 4] [1 5 2 0 3]}';
for ii=1:numel(X)
scatter(cell2mat(X(ii)),repelem(Y(ii),numel(cell2mat(X(ii)))))
hold on
end
Udvas.C on 4 Dec 2019
Yes, it worked. Thanks!