- looks wrong:   rows = size(CleanData1).   Is rows supposed to be scalar?
- what's   CPEI ?
Please help to vectorize this code.
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Jan
le 14 Fév 2017
Modifié(e) : Jan
le 14 Fév 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.
Réponse acceptée
Jan
le 14 Fév 2017
Modifié(e) : Jan
le 14 Fév 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 commentaire
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!