Matlab Newbie Problemchen < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Hallo. Ich hab Probleme eine simple Funktion in Matlab zu plotten.
Ansatz:
x=linspace(0,200,1001);
y=1-4*x*(1+1/5)/((1+x/5)*(1+x/5));
---> Fehler:
??? Error using ==> *
Inner matrix dimensions must agree.
Wär schön wenn mir jemand mit der Frage helfen könnte :)
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
hi krischan,
jaja alleranfang ist schwer.
also so wie du es unten es versucht hast, vesucht matlab ein matrix multiplikation auszuführen. das geht natürlich schief. also das mal * steht für ne matrix multiplikation, wo bei die dimensionen "über kreuz" zueinander passen müssen. also x*x' bzw x'*x (liefert inneres bzw äusseres produkt, einfach mal ausprobieren). x*x geht daher garnicht (ausnahme xist ist n x n Matrix). mit dem / bildest du das inverse also x/A ist das gleiche wie Inv(A)*x.
willst mit / und * komponentenweise rechnen dann must du einfach ein punkt vorsetzten also x.*x oder x./x. es geht auch x.^2.
also heist deine gleichung:
y=1-4*x.*(1+1/5)./((1+x/5).*(1+x/5));
ps skalare brauchen den punkt nicht
hoffe das hilft weiter
|
|
|
|
|
[mm] f(x)=1-4*x*(1+1/5)/(1+x/5)^2
[/mm]
wird in Matlab so geplottet:
y=1-4*x.*(1+1/5)./(1+x/5).^2; plot(x,y);
Danke danke danke!!
Und so schnell auch noch :]
Jetzt hab ich's endlich verstanden.
Das mit den verschiedenen Bedeutungen von Operatoren hab ich schon gewusst, bloß hab ich paar Punkte zu wenig gesetzt :)
|
|
|
|