Filter löschen
Filter löschen

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

1 Ansicht (letzte 30 Tage)
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

Akzeptierte Antwort

KSSV
KSSV am 23 Feb. 2021
Bearbeitet: KSSV am 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 Kommentare
KSSV
KSSV am 23 Feb. 2021
Try other functions instead of dlmread. Have a look on load, importdata.
SA
SA am 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;

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by