Alcuni suggerimenti per la soluzione, basati sui dati di input riportati nella domanda
Hope this helps.
a=[1 2];
b=[1 2
1 3
1 4
2 1
2 4
3 2
4 1
4 3];
%
% Prima domanda: possibile approccio
%
tmp=b; % copia della matrice di origine che può quindi essere modificata
rr=[]; % inizializzazione
% loop sugli elementi del vettore a
for i=1:length(a)
% ricerca del valore dell'i-esimo elemento di a tra gli elementi della
% colonna 1 di tmp (copia di b)
% in r viene "ritornato" il numero della che contiene l'"i-esimo" elento
% di a
[r,c,v]=find(tmp(:,1) == a(i));
% ad ogni iterazione i valori di r vengono aggiunti al vettore rr che al
% termine del loop conterrà gli indici delle righe che contenfono i valori
% del vettore a nella prima colonna
rr=[rr;r];
% al termine di ogni iterazione, le righe che contengono i valori cercati
% vengono cancellate
tmp(r,:)=NaN;
end
% Al termine del loop, in rr sono memorizzati gli indice delle righe
% cercate. Nella matrice finale "m" vengono copiati i valori delle righe
% cercate
m=b(sort(rr),:)
%
% Seconda domanda
%
% L'approccio che può essere seguito è esattamente lo stesso, l'unica
% differenza è nell'uso della funzione "find", in questo caso la ricerca
% viene effettuata su tutte le colonne di tmp (copia di b), mentre nel caso
% precedente, veniva effettuata solo sulla prima colonna
%
tmp=b;
rr=[];
for i=1:length(a)
[r,c,v]=find(tmp == a(i));
rr=[rr;r];
tmp(r,:)=NaN;
end
m1=b(sort(rr),:)
clear tmp