Can anyone help me figure out the preallocation of the unknown matrix which no. of rows changing in every cycle? Thank in advance

1 vue (au cours des 30 derniers jours)
close all; clc;
tic
p=dir('*.txt');
nFiles=numel(p);
A_cat=[]; % A_cat=zeros(500000,30);
for k=1:nFiles
A=dlmread(p(k).name);
disp(size(A_cat)); %% you can check the no. of rows is increasing
%A_cat=[A_cat;A]; %% every cycle, matrix changes its size!!!
A_cat=vertcat(A_cat,A);
end
toc

Réponse acceptée

KSSV
KSSV le 23 Fév 2021
Modifié(e) : KSSV le 23 Fév 2021
close all; clc;
tic
p=dir('*.txt');
nFiles=numel(p);
A_cat=cell(nFiles,1); % A_cat=zeros(500000,30);
for k=1:nFiles
A=dlmread(p(k).name);
disp(size(A_cat)); %% you can check the no. of rows is increasing
%A_cat=[A_cat;A]; %% every cycle, matrix changes its size!!!
A_cat{k} = A;
end
A = vertcat(A_cat{:}) ;
toc
  5 commentaires
KSSV
KSSV le 23 Fév 2021
Try other functions instead of dlmread. Have a look on load, importdata.
SA
SA le 23 Fév 2021
do you think the other possibility to run the code faster?
tic;
P_avg=cell(1,30);
for j =1:30
P_dat = buffer(A(:,j),500); %% cut the 500 elements*1000 of a single sensor
P_m=mean(P_dat,2);
P_avg{j}=P_m;
end
mn_dat = horzcat(P_avg{:}) ;
toc;

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by