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

bsxfun mit allgemeinen Operationen

 

wallew

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2015, 21:49     Titel: bsxfun mit allgemeinen Operationen
  Antworten mit Zitat      
Hallo, entschuldigung dass ich hierzu einen neuen Thread öffne. Aber mein letzter Thread wurde als beantwortet gekennzeichnet, weil es dort ursprünglich um eine etwas andere Frage ging.
Jetzt zur Frage.

ich habe eine funktion f, und will dann mit einem Vektor x die folgende Matrix basteln:

X= [f(x),f(x-1),f(x-2)...f(x-n)]

ohne die einzelnen Einträge per Hand einzutippen.

bsxfun geht anscheinend nicht, da ich nur die vorgefertigten Handles verwenden kann. Was könnte man noch tun?


wallew

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2015, 22:02     Titel:
  Antworten mit Zitat      
OK geht das etwa so oder irre ich mich:

Code:
fun = @(A,B) f(A,B);
C = 0:0.1:2;
X = bsxfun(fun,x,C)
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.06.2015, 22:25     Titel:
  Antworten mit Zitat      
Hallo,

bsxfun geht nur mit bestimmten Funktionen, siehe Doku.

Für den Zweck hier kann man sicher cellfun, arrayfun o.ä. verwenden.

Du kannst übrigens selbst den Status eines Threads wieder ändern, wenn du noch eine Frage dazu hast.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
wallew

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2015, 22:42     Titel:
  Antworten mit Zitat      
naja, der Code liefert mir zumindest keine Fehler, ich kann aber die qualität des ergebnisses nicht verifizieren. Die funktion die ich verwenden will ist in diesem fall eine gauss-distribution:

Code:
fun = @(A,B) gaussdist(A,B,0.02);
pos = 0:0.1:2;
xt = normr(bsxfun(fun,x,pos));
 


Ich setze den Vektor x also elementweise in diese verschiedenen gaussdistributionen, deren mittelwerte durch pos gesteuert werden, und kriege irgendeinen Wert.
Das funktioniert auf jedenfall, allerdings sind die einträge der Matrix xt bei meinen Werten teilweise sehr fragwürdig. Da kommen Größenordnung von 10-^200 vor.
Liegt das daran, dass bsxfun hierfür aus numerischer Sicht nicht so gut geeignet ist?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.06.2015, 09:27     Titel:
  Antworten mit Zitat      
Hallo,

da war ich glatt nicht auf dem laufenden, was bsxfun angeht.

Warum sind die Einträge denn fragwürdig? Bei einer Gauss-Verteilung ist es nunmal so, dass weit vom Mittelwert entfernt liegende Werte zwar extrem unwahrscheinlich, aber nicht unmöglich sind.
Code:
normpdf(30, 0, 1)


Zur Verifizierung des Ergebnisses kannst du ja für ausgewählte Kombinationen die Ergebnisse durch expliziten Aufruf der Funktion nachrechnen lassen.

Grüße,
Harald
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 - 2024 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.