Originariamente inviato da ramy89
Lo devi fare per forza iterativamente, cioè specificando ogni volta il nome.
Come ad esempio:
codice:
for i=1:4
if i==1
tizio_1=matrice_gia_esistente;
end;
% e cosi pure con gli altri
end;
era un'ottima idea, solo che l'indice i non so fino a quanto arriva...avevo scritto un caso generale. Metto il codice originale così magari si capisce meglio cosa voglia:
codice:
function Filtra(dataset,rec, step)
struttura = Carica(dataset,rec,step); % 15240xNel
%costruisco il filtro
f1= 0.5;
f2 = 55;
n = 6;
sf = 254.31;
Wn = [f1 f2]/(sf/2);
[b a] = butter(n, Wn, 'bandpass');
%TROVA IL NUMERO DI MINUTI DELLA STRUTTURA
s = fieldnames (struttura);
s_= size (s);
min = s_(1);
%FILTRIAMO MINUTO PER MINUTO
vmatrix = struct2cell (struttura); %ho trasformato la struct in matrice.
for i = 1 : min
meg_signal_ = vmatrix {i, 1};
ss = size (meg_signal_);
Nel = ss (2);
for j = 1 : Nel
meg_signal_(:,j) = filter(b, a, meg_signal_(:,j));
end
%creare il salvataggio
path = 'D:\MEG_OCD/02_Data_Artefact_Instr_Rem';
save([path,'/dati','/meg_signal_',num2str(i),'_', num2str(rec)], 'meg_signal_');
end
end
sto facendo un'ottimizzazione processamento dati.
Mi serve cambiare il nome delle matrici meg_signal_ filtrate, differenziandole ognuna dal termine i che va da 1 a min, con min che non si sa a priori.
Non esiste qualche metodo iterativo come mi hai suggerito con l'if che incrementa fino a min ?