Comment générer une fonction de deux variables sans utiliser de boucle?

Supposons que j'ai une fonction y(t,x) = exp(-t)*sin(x)

Dans Matlab, j'définir

t = [0: 0.5: 5];
x = [0: 0.1: 10*2*pi];
y = zeros(length(t), length(x)); % empty matrix init

Maintenant, comment puis-je définir la matrice y sans utiliser de boucle, de telle sorte que chaque élément y(i,j) contient la valeur de la fonction désirée y à (t(i), x(j))? Ci-dessous est la façon dont je l'ai fait à l'aide d'une boucle for.

for i = 1:length(t)
    y(i,:) =  exp(-t(i)) .* sin(x);
end
Pas sûr qu'on puisse - est de la boucle de prendre de temps à s'exécuter, ou pourquoi voulez-vous?
La boucle n'est pas un problème ici, dans cet exemple simple. Mais je veux apprendre la façon de le faire sans boucle pour vraiment de grands vecteurs!

OriginalL'auteur Aamir | 2009-12-25