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

cell-Array aus anonymen Funktionen

 

HerrErnie
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 21.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2012, 17:35     Titel: cell-Array aus anonymen Funktionen
  Antworten mit Zitat      
Hallo,

habe zur Zeit mit folgendem Problem zu kämpfen:

Ich habe ein Cell-Array bestehend aus m zufälligen anonymen Funktionen (R^n->R). Dieses möchte ich gerne umwandeln in eine einzige vektorwertige anonyme Funktion (R^n->R^m).

Alternativ würde mir auch helfen, wenn jemand eine Möglichkeit sieht, folgenden Code derart abzuändern, dass er anstelle eines Cell-Arrays s von anonymen Funktionen s{i}:R^n->R eine einzige anonyme Funktion s:R^n->R^m erzeugt.

Code:

for i=1:m
            k=ceil(10*rand(1));
            A=round(3*sprandn(n,k,0.5)) ;
            b=5*randn(k,1);            
            s{i}=@(x) b'*(prod((x*ones(1,k)).^A))';
end
 


Ziel ist es im Übrigen eine zufällige Funktion s:R^n -> R^m, s=(s_1,...,s_m) so zu erzeugen, dass die jeweiligen s_i der Form http://en.wikipedia.org/wiki/Signomial
entsprechen.

Freue mich über jegliche Hinweise und vielen Dank fürs Lesen.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.12.2012, 21:01     Titel:
  Antworten mit Zitat      
Hallo,

ich würde mir dazu eine kleine Funktion schreiben, die ein s nach dem anderen auswertet und die Ergebnisse verkettet. Das ließe sich wohl auch mit cellfun kompakter machen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 21.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2012, 21:54     Titel:
  Antworten mit Zitat      
Ah, vielen Dank!
Werde ich in Kürze mal probieren. Auf den ersten Blick scheint die cellfun-Funktion jedoch tatsächlich genau das zu sein, was ich gesucht habe.
Private Nachricht senden Benutzer-Profile anzeigen
 
HerrErnie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 21.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.12.2012, 15:29     Titel:
  Antworten mit Zitat      
Danke nochmal,

die cellfun-Funktion war scheinbar doch nicht ganz das, was ich suchte, aber habe mir jetzt mit einer denkbar einfachen Hilfsfunktion
Code:

function [con]=mergecon(c,x)
% Hilfsfunktion, um Cell-Array c von Funktionen in vektorwertige Funktion
% umzuwandeln
m=length(c);
for i=1:m
    con(i)=c{i}(x);
end
 

behelfen können. Die gewünschte vektorwertige Funktion erhalte ich dann einfach mit
Code:
con = @(x) mergecon(c,x);



Gruß und schöne Feiertage
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.