WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Syms, Schleife,

 

phigo90
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 22.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2016, 14:49     Titel: Syms, Schleife,
  Antworten mit Zitat      
Hallo,

ich habe nochmal ein Problem. Anbei der Code zu Erklärungszwecken.
Code:

clear all;
syms x
nfunc=65;
stp = 0.8325546111576978;
f = @(x,t0,sig) exp(-((x-t0)/sig)^2);
fd=@(x,to,sig) diff(f,x)

sPhi=zeros(nfunc,1);
for i=0:nfunc-1;
sPhi(i+1,1)=i*stp;
end

for i=1:length(sPhi)
   f2(i)=f(x,sPhi(i),1)
end

f3=@(x) sum(f2)
ezplot(f3(x),[0,5])
 


Wenn ich dir for Schleife mit den Werte für sPhi herauslasse funktioniert alles einwandfrei. Auch wenn ich mir sPhi erstelle über
Code:

sPhi=[1:4]
 

macht der Rechner was ich will. Nur wenn ich mein sPhi über eine For-Schleife erstelle, greift Matlab nicht mehr richtig auf die einzelnen Elemente zu. Es kommen total wirre Sachen heraus. Ich denke es liegt daran, dass ich nicht verstehe, was der Unterschied für Matlab ist diesen Array über eine Loop zu befüllen oder mit dem direkten Befehl mit sPhi=[1:4]. In Mathematica habe ich immer "Table" benutzt, das hat ohne Probleme funktioniert. Ich weiß es gibt so etwas ähnliches in Matlab mit "bsxfun" aber da komme ich einfach nicht weiter.

Edit: Ich habe im Anhang ein Bild, indem ich den Array sPhi über eine For-Schleife befülle und es kommen total wirre Werte raus (siehe Überschrift Plot). Eigentlich sollte bei der Wahl von stp=1, genau das gleiche rauskommen wie bei SPhi=[1:4] (wenn ich den Bereich analog wähle). Was macht Matlab hier?

Wäre toll, wenn mir jemand bei meiner Problemstellung helfen könnte.
Vielen Dank schon einmal im Voraus. Wink

Vergleich.png
 Beschreibung:

Download
 Dateiname:  Vergleich.png
 Dateigröße:  53.6 KB
 Heruntergeladen:  304 mal
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Friidayy
Forum-Century

Forum-Century


Beiträge: 225
Anmeldedatum: 17.12.13
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 24.01.2016, 12:23     Titel:
  Antworten mit Zitat      
Bei mir kommt das gleiche raus, wie auf deinem Bild. Ist das Bild falsch oder richtig? Was meinst du mit komische Werte? Wenn du den Bruch mit den großen Zahlen meinst, dann ist daran nichts falsch, Matlab kürzt solche Brüche nicht, wenn du symblisch arbeitest, bzw. vereinfacht sie nicht zu rationalen Zahlen.

Code:
nfunc=4;
% stp=0.8325546111576978;
stp=1;
tmp=[0:nfunc-1]'*stp;

syms x sPhi sig
f=exp(-((x-sPhi)/sig)^2);

fn=subs(f,[sPhi,sig],[tmp(1),1]);
for i=2:length(tmp)
   fn=fn+subs(f,[sPhi,sig],[tmp(i),1]);
end

ezplot(fn,[0,5])
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.