Reducing a vector size when it is being updated in a loop

2 visualizaciones (últimos 30 días)
Hans123
Hans123 el 27 de Mzo. de 2019
Comentada: Catalytic el 28 de Mzo. de 2019
Hi,
I have a vector A that is being updated in a loop, A contains data from a Trial, and the length of it changes with each iteration. I want to make the length of each A the same so the plots are of the same size.
Trial 1 length = 497 x 12, Trial 2 length = 700 x 12 ... Trial 5 length = 687x12 ( I want to get a 497x12 vector for all trials)
I currently have this piece of code, which find the smallest length of the A - the problem is the line of code that the smallest length out is inside the loop and after each iteration it changes.
The smallest number is a hint to how long the array A should be, since it varies for each trial uploaded.
I hope the below code helps
smallest = 10000;
for h=1:5
%code to load all script files
if h==1
A = dlmread("Trial 1");
elseif h==2
A = dlmread("Trial 2");
elseif h==3
A = dlmread("Trial 3");
elseif h==4
A= dlmread("Trial 4");
elseif h==5
A= dlmread("Trial 5");
end
[x , y] = size(A);
if x<smallest
smallest = x; %the smallest length of rows for A
end
...
end

Respuesta aceptada

Catalytic
Catalytic el 27 de Mzo. de 2019
Editada: Catalytic el 27 de Mzo. de 2019
for h=5:-1:1
%code to load all script files
if h==1
A = dlmread("Trial 1");
elseif h==2
A = dlmread("Trial 2");
elseif h==3
A = dlmread("Trial 3");
elseif h==4
A= dlmread("Trial 4");
elseif h==5
A= dlmread("Trial 5");
end
Acell{h}=A;
end
smallest = min( cellfun(@(c) size(c,1), Acell) );
Ashort=cellfun(@(c)c(1:smallest,:) , Acell,'uni',0);
for i=1:numel(Ashort)
figure(i); plot(Ashort{i});
end
  4 comentarios
Hans123
Hans123 el 28 de Mzo. de 2019
Editada: Hans123 el 28 de Mzo. de 2019
Thanks the code works well, inorder to extrapolate the data from the cell so I can use them in my calculations should I use the function celltomat?
Catalytic
Catalytic el 28 de Mzo. de 2019
No, just grab whichever data set you need by indexing, as in Acell{i}.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by