J'ai les éléments suivants dans mathematica et je veux l'utiliser dans matlab.J'ai essayé mais j'ai des erreurs et je ne peux pas les corriger.C'est que je ne reçois pas encore la philosophie matlab! Ainsi,conversion de mathematica en matlab -> (appendto)
intMC = {}; sigmat = {};
Do[np1 = np + i*100;
xpoints = Table[RandomReal[], {z1, 1, np1}];
a1t = Table[f[xpoints[[i2]]], {i2, 1, np1}];
a12 = StandardDeviation[a1t]/Sqrt[Length[a1t]];
AppendTo[intMC, {np1, Mean[a1t], a12}];
AppendTo[sigmat, {np1, a12}],
{i, 1, ntr}];
Je l'ai fait:
[email protected] (x) exp(-x.^2);
intmc=zeros();
sigmat=zeros();
for i=1:ntr
np1=np+i*100;
xpoints=randn(1,np1);
for k=1:np1
a1t=fx(xpoints(k))
end %--> until here it prints the results,but in the
%end it gives
% me a message " Attempted to access xpoints(2,:);
%index out of bounds because size(xpoints)=[1,200]
%and stops executing.
%a1t=fx(xpoints(k,:)) % -->I tried this instead of the above but
%a1t=bsxfun(@plus,k,1:ntr) % it doesn't work
a12=std(a1t)/sqrt(length(a1t))
intmc=intmc([np1 mean(a1t) a12],:) %--> i can't handle these 3 and
sigmat=sigmat([np1 a12 ],:) %as i said it stopped executing
end
Merci pour votre réponse Jonas Vous étiez très helpful.I ne peut pas comprendre une partie though.How nous appliquons directement f (x) sur le tableau xpoints.I Je n'arrive pas à comprendre pourquoi nous n'utilisons pas sth comme: fx (xpoints (k)). – George
@George: xpoints est un tableau. Les opérations mathématiques sont appliquées élément par élément sur un tableau (notez que si une opération a une signification spéciale lin linéaire algèbre, comme la multiplication, vous devez utiliser '. *' 'Au lieu de' * 'pour obtenir un comportement par élément). 'exp (-x.^2)' fonctionne sur chaque élément du tableau, donc vous pouvez juste passer un tableau pour 'x', et n'avez pas besoin d'une boucle. – Jonas
oui, mais pour que exp (-x.^2) fonctionne sur chaque élément du tableau xpoints, ne devons-nous pas mettre l'exp (-x.^2) sur le tableau? – George