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

Aufruf externer Funktion mit zwei Variablen

 

gubach
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 27.07.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.03.2018, 17:21     Titel: Aufruf externer Funktion mit zwei Variablen
  Antworten mit Zitat      
Ich erzeuge ein meshgrid und will dieses deformieren indem ich eine externe Funktion aufrufe:
Code:
[xi,yi] = meshgrid(1:ci,1:ri);                                                  
[xi, yi] = @(x,y)xform2(xi, yi);  

mit xform2.m:
Code:
function [x, y] = xform2(x, y)
    a = 4/1; b = 2/1; c = 2/1;    
    fxiy = (1./(a.*((x+1i*y).^b)-c));
    x = real(fxiy);
    y = imag(fxiy);
end  

Im Editor bekomme ich am Gleichzeichen von "[xi, yi] = @..." den Fehler angezeigt: expression cannot assigned to multiple values.
Was bekomme ich das gelöst? Danke!
Private Nachricht senden Benutzer-Profile anzeigen


huhu0815
Forum-Century

Forum-Century


Beiträge: 141
Anmeldedatum: 20.02.14
Wohnort: Dresden
Version: R2013b, R2014b, R2016b, R2018a
     Beitrag Verfasst am: 11.03.2018, 17:36     Titel:
  Antworten mit Zitat      
Hi,

warum rufst du die Funktion nicht direkt auf?
Code:

[xi, yi] = meshgrid(1:4, 1:3);
[re, im] = xform2(xi, yi);
 


wenn du es unbedingt in einer Inline Function (anonymous function) deklarieren willst, dann so:
Code:

callFunc_xform2 = @(a,b) xform2(a, b);
[c,d] = callFunc_xform2 (xi, yi);
 

_________________

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
gubach
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 27.07.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.03.2018, 18:01     Titel:
  Antworten mit Zitat      
@huhu0815

ich habe bislang die Funktion in der gleichen m-Datei gehabt und direkt aufgerufen, doch wenn ich an der Definition von fxiy herumspielen will, muss ich das im hinteren Ende des Skripts machen. Daher auch meine vorangegangene (unbeantwortete) Anfrage "str2func Problem bei deformation eines Grids", bei der ich ein Funktionsstring fz_string am Skripanfang definieren will und nach der Meshgrid Erzeugung [x, y] = xform3(x, y, fz_string) aufrufe. Doch das funktioniert so nicht, da die Bildergebnisse völlig anders werden. Daher wollte ich es mit einer externen m-Datei versuchen.
Private Nachricht senden Benutzer-Profile anzeigen
 
gubach
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 27.07.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.03.2018, 18:24     Titel:
  Antworten mit Zitat      
Wenn ich
Code:
callFunc_xform2 = @(x,y) xform2(x, y);
    [xi, yi] = callFunc_xform2(xi, yi);

versuche, dann ergibt sich ein extrem unerwünschtes Verhalten, da der Direktaufruf 1-2 Sekunden dauert und callFunc_xform2 ist etliche Minuten gelaufen und friert die Win GUI fast ein. Das geht also gar nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.03.2018, 20:42     Titel:
  Antworten mit Zitat      
Hallo,

wie rufst du die Funktion denn genau auf?
Es ist sehr verwunderlich, dass etwas so einfaches Minuten dauern soll.

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.