2017-07-04 4 views
-2
function output=Input(data,T) 
[x,cmap]=imread('abc.tiff'); 

data=im2double(x); 

ID_notNaN=find(~isnan(SWI)); 
D=data(:,1); 
X=data(:,2); 

F=nan(length(data(:,1)),1); 
P(ID_notNaN)=SWI; 
output=[data(:,1),data(:,2)]; 

Je souhaite appliquer la même fonction à tous les 365 ensembles de données que je possède, mais la fonction ne peut fonctionner avec aucune boucle. Aidez-moi avec ceBoucle à utiliser avant l'appel de fonction dans matlab

+0

Je ne vois aucune boucle. –

Répondre

0

Utilisez la fonction arrayfun, comme expliqué dans la documentation de Matlab:

[B1,...,Bn] = arrayfun(Input,A1,...,An) 

Input est le nom de votre fonction et n est égale à 365, le nombre d'ensembles de données que vous avez.

+0

entrée sera les variables d'entrée pas les jeux de données tiff – Pooja

+0

bien, j'ai appelé votre fonction "entrée" parce que c'est ce que vous l'avez nommé, mais vous pouvez, bien sûr, l'appeler chapeau que vous aimez :) –

0

Je n'arrive pas à trouver où vous obtenez les variables SWI et P, alors assurez-vous que ces fonctions sont accessibles à la fonction. Vous trouverez ci-dessous une manière brute de lire tous les fichiers (365?) Dans un dossier spécifique et de les alimenter un à un dans votre algorithme.

Espérons que cela aide!

% Location of files to be read 
folder = 'C:\foo\siffer\second try\'; 
% Type of files to read. Leave as '' if you wish any ending. 
ending = 'tiff'; 

% Find all files in that folder 
files = dir(folder); 
numFiles = length(a); 
el = length(ending); 

% Loop through all found files 
for i = 1:numFiles 
    filename = files(i).name; 
    nameLength = length(filename); 
    % Ignore files with improper filename 
    if nameLength<el+1 
     % Not enough letters for containing .tiff 
     continue 
    elseif strcmp(filename(nameLength + (-el+1:0)) , ending) 
      % The file indeed has the right format 

      % Either just call your function here 
      % % output=Input(data,T); 
      % or paste the content of the 
      % function like i did : 

      [x,cmap]=imread([folder,filename]); 

      data=im2double(x); 

      ID_notNaN=find(~isnan(SWI)); 
      D=data(:,1); 
      X=data(:,2); 

      F=nan(length(data(:,1)),1); 
      P(ID_notNaN)=SWI; 
      output=[data(:,1),data(:,2)]; 

    end 


end 
+0

je vais essayer cela et je vous le ferai savoir – Pooja