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: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;
sto facendo un'ottimizzazione processamento dati.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
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 ?

Rispondi quotando