Quando lavori in MATLAB puoi pensare di ricorrere o al parallelismo sui dati, che è una caratteristica molto potente del MATLAB che ti consente di fare operazioni anche abbastanza complesse in una o due righe di codice, oppure puoi ricorrere all'approccio iterativo solito (for, while ecc...). Io ti consiglio la prima strada, anche perché significa sfruttare una caratteristica che altri linguaggi non ti forniscono.
Il tuo esercizio si può risolvere così: se A è la matrice di partenza, supponiamo creata così
codice:
>> A = fix( 100 * rand (7, 6) )
A =
65 82 76 75 95 69
17 69 79 27 34 89
70 31 18 67 58 95
3 95 48 65 22 54
27 3 44 16 75 13
4 43 64 11 25 14
9 38 70 49 50 25
(ovviamente la puoi creare delle dimensioni che vuoi tu), puoi ottenere la matrice B semplicemente con questa riga:
codice:
B = A( A(:, end) >= 10 & A(:, end) <= 20, : )
il cui output è
codice:
B =
27 3 44 16 75 13
4 43 64 11 25 14
oppure, per ricorrere all'approccio iterativo classico, puoi fare tutto con questo script:
codice:
B = [];
for i = 1:size(A, 1)
if A(i, end) <= 20 && A(i, end) >= 10
B = [ B; A(i, :) ];
end
end
disp(B);
che dovrebbe essere meno ermetico...