Filter löschen
Filter löschen

Convert 190x1 cell array into scatter plot?

1 Ansicht (letzte 30 Tage)
Elizabeth Walter
Elizabeth Walter am 31 Aug. 2021
I have a 190x1 cell array and each cell contains {131x1}. The 190 represents the number of time points or what I want listed as my x-axis. Then each cell contains 131 data points that I want to be my y value for each x-axis value. I can figure out how to get the y values, but unable to figure out how to get the corresponding x-value. I'm sure there is a simple explanation, but i haven't been able to find it through the mathworks website!
x=??
y=cell2mat(data(:))
scatter(x,y)
Thank you so much!

Antworten (1)

Chunru
Chunru am 1 Sep. 2021
% Data: 190x1 cell array and each cell contains {131x1}.
ncells = 20;
npoints = 50;
for i=1:ncells
data{i, 1} = randn(npoints, 1);
end
x=1:npoints;
y=cell2mat(data'); % assume data is ncells x 1
scatter(x,y)
  3 Kommentare
Chunru
Chunru am 1 Sep. 2021
Bearbeitet: Chunru am 1 Sep. 2021
You have to show what data you have. It looks like your cell array is 1 x ncells instead of ncells x 1. Each cell is 1x190 instead of 190 x 1. Therefore, you can plot the data:
scatter(x, y')
Elizabeth Walter
Elizabeth Walter am 1 Sep. 2021
hmm yeah I was unable to get that method to work.
However I used your "y=cell2mat(data')" part
to figure out something else
so I made
x=1:190 (or 1 x 190 array)
but made this into an repetitive array so it matched the y data which was 131 x 190
so with both matrixes 131 x 190 I turned them back into vectors to finally produce the scatter (x,y)!

Melden Sie sich an, um zu kommentieren.

Produkte


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by