2012-06-11 4 views
0

J'ai une fonction dans matlab qui accepte une matrice nx1.Comment sélectionner chaque ligne comme un élément dans matlab

J'ai une matrice X de NX2 obscurcit

Comment puis-je envoyer matrice X à la fonction où chaque rangée de X va comme un élément?

+0

Après avoir relu votre question, pouvez-vous la clarifier un peu? Voulez-vous vraiment dire que chaque ligne de 'X' devrait aller à la fonction, il semblerait plus approprié de passer chaque * colonne * de' X' à la fonction. – Chris

+0

les colonnes sont limitées à 1, donc je veux combiner les 2 colonnes –

+0

Désolé, mais que voulez-vous dire que vous "voulez combiner les 2 colonnes"? Est-ce que ma réponse vous donne ce que vous voulez? – Chris

Répondre

1

Jetez un oeil à ce matrix indexing in MATLAB article sur le site MathWorks pour des informations et des exemples de matrices d'indexation. Pour sélectionner les lignes d'une matrice que vous pouvez faire quelque chose comme ce qui suit:

>> m = rand(5, 2) 

m = 

    0.8147 0.0975 
    0.9058 0.2785 
    0.1270 0.5469 
    0.9134 0.9575 
    0.6324 0.9649 

>> m(1,:)   

ans = 

    0.8147 0.0975 

>> m(end,:)  

ans = 

    0.6324 0.9649 

Le premier indice d'une matrice correspond aux lignes , la seconde correspond aux colonnes. Ici, le : comme deuxième index sélectionne toutes les colonnes de la ligne appropriée. Si vous avez une fonction func, et la matrice m de ci-dessus, vous pouvez passer chaque rangée de m-func comme suit:

for i = 1:length(m) 
    func(m(1,:)') 
end 

Notez la transposition, qui convertit chaque rangée de m dans un tableau 2x1, soit une colonne vecteur, plutôt que d'un vecteur de ligne.

1

Si je comprends bien, vous devez faire quelque chose comme

for i=1:size(X,1) 

    f(X(i,:)'); 

end 

ce qui signifie que vous passez chaque ligne à la fonction séquentielle f, transposée comme vecteur de colonne.

Si au contraire vous voulez linéariser X sur les lignes, vous devez effectuer les opérations suivantes:

Xlin = reshape(X',numel(X),1); 
f(Xlin); 
Questions connexes