How to extract complex cell data into a new variable?

I have a variable with 2000 columns. In each of the 2000 columns, there is a 1x13 cell. Within each 1x13 cell, there is a varying size double (Nx1), where N is any number. I would like to have the very 1st number within the (Nx1) double, in each of the 1x13 cells, for all 2000 columns. I would like this to result in a new cell variable with 13 columns of double 2000x1 data sets. i.e. (2000x1 double, 2000x1 double, 2000x1 double, 2000x1 double, 2000x1 double, 2000x1 double, 2000x1 double, 2000x1 double, 2000x1 double, 2000x1 double, 2000x1 double, 2000x1 double, 2000x1 double,).
Because this is kind of confusing, I attached my code so you can open the variable yourself. To run it, it needs nodes.txt and pipes.txt. The variables name after you run the code, is "H"

 Respuesta aceptada

Rik
Rik el 17 de Sept. de 2018
Using a double loop to accomplish this is still reasonably fast:
%generate a random H
s1=2000;s2=13;
H=cell(s1,1);
for n=1:s1
H{n}=cell(1,s2);
for m=1:s2
H{n}{m}=rand(randi(100),1);
end
end
clc
tic
output=zeros(size(H,1),size(H{1},2));
for n=1:size(output,1)
for m=1:size(output,2)
output(n,m)=H{n}{m}(1);
end
end
O=mat2cell(output,n,ones(m,1));

3 comentarios

Austin Sowers
Austin Sowers el 17 de Sept. de 2018
Editada: Austin Sowers el 17 de Sept. de 2018
This looks like it will work. Only one possible correction. Instead of the generated "H" having 2000 columns, your generated "H" has 2000 rows. Will that have an impact on the output? Thank you for your answer!
Yes. If you could please correct this, I would appreciate it very much!! I am a rookie matlab guy. It is a problem I have been working on for some time and will help me a lot. Thank you again.
Actually, I just transposed my "H" and it worked. Thank you so much!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Versión

R2016b

Preguntada:

el 17 de Sept. de 2018

Comentada:

el 17 de Sept. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by