Azzera filtri
Azzera filtri

Convert 190x1 cell array into scatter plot?

1 visualizzazione (ultimi 30 giorni)
Elizabeth Walter
Elizabeth Walter il 31 Ago 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!

Risposte (1)

Chunru
Chunru il 1 Set 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 Commenti
Chunru
Chunru il 1 Set 2021
Modificato: Chunru il 1 Set 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 il 1 Set 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)!

Accedi per commentare.

Prodotti


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by