MATLAB Answers

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

24 views (last 30 days)
Sk. Alam
Sk. Alam on 23 Feb 2021
Commented: Sk. Alam on 23 Feb 2021
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

Accepted Answer

KSSV
KSSV on 23 Feb 2021
Edited: KSSV on 23 Feb 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 Comments
Sk. Alam
Sk. Alam on 23 Feb 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;

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by