Buonasera, provo a spiegare il problema che ho sperando che qualcuno mi riesca a dire dove sbaglio. Parto da una matrice molto grande (di dimensioni 49152x5) chiamata tab e da un vettore f di dimensioni 96x1. Quello che devo fare e verificare se nella terza colonna della matrice tab ci sono elementi uguali a quelli contenuti in f, mi dovrebbe restituire un indice e con questo vado a salvarmi in un vettore l'elemento che sta nella riga trovata tramite indice e nella colonna 2 di tab. Faccio un esempio:
f=[1 2 3 4 5....... 96] f (ha dimensioni 96x1)
tab= [..... ; 128 48 5.......; 1 1 1 2 2 2 3 4 3....; ....... ; .......] (ha dimensioni 49152x5)
Dovrei riuscire a prendere il primo valore di f, nell'esempio 1, verificare se è presente nella terza colonna di tab farmi restituire l'indice e in corrispondenza di questo indice e colonna 2 salvarmi i valori relativi. Nel caso in vett dovrebbe ad esempio salvare 128 48 5. Vorrei poter salvare tutti i 96 vettori risultati (in uno verifica se 1 ci sta nella terza colonna di tab e fa quanto detto in precedenza , in uno verifica se 2 ci sta nella terza colonna di tab..... e cosi via).
Io ho provato con un ciclo e un find ma sbaglio decisamente il ragionamento.
Ecco il codice:
load('tab.mat');
vett=[];
f=[];
for k=1:96
f(k,1)=k;
end
for i=1:49152
h=tab(i,3);
g=f(:,1);
indice=find(g==h);
vett(i,1)=tab(indice,2);
% capire come memorizzare tutti i 96 vettori
end