I have this error msg (Matrix index is out of range for deletion. Error in tray1 (line 31) x1(:,rows) = []; ) what is the problem ????
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
[rows, columns] = size(x1); for col = 1 : columns sum = 0; for row = 1 : rows % Now get the mean over all values in this column. columnMeans(col) = sum / rows; if columnMeans(col)> avgcut columnMeans(col)< avgcut x1(:,col) = []; end end end
0 Commenti
Risposta accettata
alice
il 5 Lug 2017
You are deleting columns of your matrix x1 in the loop, so its size has changed (moreover, you skip some columns).
To avoid this, you can store the index of the column you want to delete in the loop and delete them only when the loop is finished:
colToDelete = [];
[rows, columns] = size(x1);
for col = 1 : columns
sum = 0;
for row = 1 : rows % Now get the mean over all values in this column.
columnMeans(col) = sum / rows;
if columnMeans(col)> avgcut || columnMeans(col)< avgcut
colToDelete = [colToDelete,col];
end
end
end
x1(:,colToDelete) = [];
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Image Processing Toolbox in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!