2011-10-30 4 views
1

Commencé à apprendre l'octave récemment. Comment générer une matrice à partir d'une autre matrice en appliquant une fonction à chaque élément?Générer une matrice à partir d'une autre matrice

par exemple:

  • Appliquer 2x + 1 ou 2x/(x^2 + 1) ou 1/x + 3 à une matrice de 3x5 A.
  • Le résultat doit être une matrice 3x5 avec le valeurs maintenant 2x + 1
  • si A (1,1) = 1, alors après l'opération avec une matrice de sortie B, alors
  • B (1,1) = 2,1 + 1 = 3

Ma principale préoccupation est une fonction qui utilise la valeur de x comme celle de trouver l'inverse ou quelque chose comme indiqué ci-dessus.

ce qui concerne.

Répondre

2

Vous pouvez

B = A.*2 + 1 

L'opérateur . signifie application de l'opération suivante * à chaque élément de la matrice.

Vous trouverez beaucoup de documentation pour Octave dans le package de distribution et sur le Web. Encore mieux, vous pouvez également utiliser la documentation complète sur Matlab.

AJOUTÉE. Pour les opérations plus complexes, vous pouvez utiliser arrayfun(), par ex.

B = arrayfun(@(x) 2*x/(x^2+1), A) 
+0

Salut Jiri, c'est bien. Je pense qu'il n'a pas utilisé un très bon exemple. Supposons que la fonction est 2x/(x^2 + 1) ou 1/x + 3. J'ai mis à jour la question en conséquence. Merci. – ritcoder

+0

J'ai étendu ma réponse pour gérer votre question étendue. – Jiri

+0

Salut Jiri, c'est exactement ce que je cherche. J'ai changé mon code existant qui utilisait 2 pour les boucles et cela a très bien fonctionné. Maintenant apprendre l'octave donc pas très familier avec la fonction existante. Merci. – ritcoder

Questions connexes