2017-06-01 2 views
0

Je suis en train d'écrire un script pour lire une colonne de texte à partir d'un fichier Excel, en vérifiant le contenu, puis écrire le contenu des cellules d'une autre colonne (numérique) dans d'autres fichiers Excel.xlsread [num] rejet NaN

function [ output_args ] = export3(filename,cellranges) 
%UNTITLED2 Summary of this function goes here 
% Detailed explanation goes here 
[~,txt] = xlsread(filename, cellranges); 
actRange = strrep(cellranges,'H','D'); 
[num] = xlsread(filename, actRange); 
active = []; 
rest = []; 
for ii = 1 : length(txt) 
    if strcmp(txt{ii},'ACTIVE') 
     active(end+1) = num(ii) 
    elseif strcmp(txt{ii},'REST-S') 
     rest(end+1) = num(ii); 
    end 
end 
xlswrite('activity.xls',active') 
xlswrite('rest.xls',rest') 
end 

Le problème est que s'il y a une valeur NaN dans la colonne de chiffres, il est juste éliminé, ce qui provoque également un décalage entre le vecteur cellulaire txt et num, qui demandent à un « indice dépasse les dimensions de la matrice. » Erreur. Je voudrais garder la valeur NaN dans mon nombre vecteur, comment puis-je procéder?

Il est probablement une meilleure façon de le faire dans Excel, mais je ne suis pas au courant, je l'ai juste une certaine connaissance rudimentaire de Matlab.

Répondre

0

Oh, j'ai tout compris, il était une question stupide, je peux utiliser tout cru et exporter dans un réseau de cellules au lieu d'un vecteur.