- looks wrong:   rows = size(CleanData1).   Is rows supposed to be scalar?
- what's   CPEI ?
Please help to vectorize this code.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
tic;
load 'CCA_result.mat';
CleanData1= CleanData1';
rows = size(CleanData1);
Result_cpei = zeros(1,rows(1));
for N = 1:1:rows
tmp=CPEI(CleanData1(N,:),0);
Result_cpei = [Result_cpei tmp];
save ('CPEI','Result_cpei');
end
The output is not a matter since I got the right output. The issue is can this code to be vectorized?
4 Kommentare
Jan
am 14 Feb. 2017
Bearbeitet: Jan
am 14 Feb. 2017
@M O: Yes, you do not get an error for for N=1:1:[a,b], but most likely this will not do what you expect. Please specify, if you want:
rows = size(CleanData1, 1)
% or
rows = size(CleanData1, 2)
% or
rows = numel(CleanData1, 1)
The created file "CPEI.mat" is overwritten in each iteration. This is not useful. Please write a clean code, which does exactly, what you want, before starting to optimize the speed by a vectorization.
Akzeptierte Antwort
Jan
am 14 Feb. 2017
Bearbeitet: Jan
am 14 Feb. 2017
Start with avoiding to re-create the formerly pre-allocated output and do not overwrite the output file in each iteration:
Data = load('CCA_result.mat'); % Avoid dynamic creation of variables
CleanData1 = Data.CleanData1';
rows = size(CleanData1, 1); % Guessed, perhaps you want NUMEL or the 2nd dim
Result_cpei = zeros(1, rows); % Pre-allocation
for N = 1:rows
Result_cpei(N) = CPEI(CleanData1(N,:),0); % Write ionto pre-allocated array
end
save('CPEI.mat', 'Result_cpei');
If this can be vectorized depends on the contents of the function CPEI. If this function accepts a array as input, the code can be simplified to:
Data = load('CCA_result.mat');
CleanData1 = Data.CleanData1';
Result_cpei = CPEI(CleanData1,0);
save('CPEI.mat', 'Result_cpei');
1 Kommentar
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!