La question est ... pas très claire, mais laissez-moi essayer et vous donner quelques suggestions.
Dites que vous avez lu certaines données d'un classeur Excel dans lequel la première ligne est en-têtes, suivie par beaucoup de lignes avec des nombres.
[num,txt] = xlsread(excelFileName);
de sorte que num
contient les données numériques et txt
les en-têtes de colonnes de chaîne.
Ensuite, vous pouvez vérifier la chaîne Thing-1
dans les en-têtes de colonne. thingOneIdx
est un tableau avec des index dans les colonnes de l'en-tête. Dans votre exemple, ce serait [1 2]
, puisque les deux premières colonnes sont Thing-1
.
thingOneIdx = find(strcmp('Thing-1',txt));
Vous pouvez créer trois réseaux de cellules, firstValue
, secondValue
et thirdValue
qui stockeront les résultats des trois calculs. Si vous devez conserver les données Thing-1
dans un tableau supplémentaire, vous pouvez le faire de manière analogue.
%# define cell arrays (do it in one go using deal)
[firstValue,secondValue,thirdValue] = deal(cell(length(thingOneIdx),1));
%# for simplicity and readability, loop through isThingOneIdx to assign data
for ct = 1:length(thingOneIdx)
myIdx = thingOneIdx(ct);
firstValue{ct} = someCalculation(num(myIdx,:));
secondValue{ct} = someOtherCalculation(num(myIdx,:));
%# etc
end
oh, les codes sont désordonnés – zhiqiang
Apprenez à formater le code. Lorsque vous modifiez votre réponse, regardez la barre d'outils au-dessus du champ de texte et le point d'interrogation orange sur la droite. – yuk