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

Variablen Selektieren

 

throat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.05.2013, 01:27     Titel: Variablen Selektieren
  Antworten mit Zitat      
Ich habe ein Problem und werde versuchen es mit einem Beispiel darzustellen:

Ich habe folgende Variablendeklarationen und zwar jeweils drei variablen für test, beispiel und frage. Nun möchte ich meine Funktion ausfuehre() testen. Dazu muss ich es beispielsweise mit test1, beispiel1 und frage1 ausführen. bei dem zweiten Test nehme ich die Variablen test2, beispiel2 und frage2.

Das mit manueller Kommentierung find ich blöd. Wie könnte man das Problem elegant bei der Selektion lösen.

Code:
%~~~
test1 = 1;
test2 = 2;
test3 = 3;
beispiel1 = 4;
beispiel2 = 5;
beispiel3 = 6;
frage1 = 7;
frage2 = 8;
frage3 = 9;

test = test1;
% test = test2;
% test = test3;
ausfuehre(test)
beispiel = beispiel1;
% beispiel = beispiel2;
% beispiel = beispiel3;
ausfuehre(beispiel)
frage = frage1;
% frage = frage2;
% frage = frage3;
ausfuehre(frage)


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 26.05.2013, 01:48     Titel:
  Antworten mit Zitat      
der index für eine wariable sollte nicht im namen verwendet werden sondern als index.
Code:
test(1) = 1;
test(2) = 2;
test(3) = 3;

und so weiter
du solltest dir mal das grundlagen tutorial von matlab angucken falls das noch nicht passiert ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
throat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2013, 15:19     Titel:
  Antworten mit Zitat      
Das Problem ist ich bei frt dynamischen variablen folgendermassen gelöst habe

Code:
for j=1:3
namestr = sprintf('Test%i',j);
assignin('base',namestr,test)
end
 
 
throat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2013, 16:25     Titel:
  Antworten mit Zitat      
Habs mal jetzt mit deinem Ansatz versucht und bekomme, folgende Fehlermeldung, woran kann es liegen?

Zitat:
In an assignment A(I) = B, the number of elements in B and I must be the same.
 
throat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2013, 16:28     Titel:
  Antworten mit Zitat      
noch ein Hinweis es soll eine Zuordnung von einer variable in der Form von <100x1 double> sein
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 27.05.2013, 16:51     Titel:
  Antworten mit Zitat      
dann nimm ne cell
zb
Code:

test{1}=0:100
test{2}=100:200
test{4}=200:300
Private Nachricht senden Benutzer-Profile anzeigen
 
throat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2013, 16:59     Titel:
  Antworten mit Zitat      
das Problem ist dass als Übergabeparameter verwendet wird, und die Funktion ein Vektor erwartet:

Deswegen bekomme ich folgende Fehlermeldung

Zitat:
Undefined function 'le' for input arguments of type 'cell'.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 27.05.2013, 17:18     Titel:
  Antworten mit Zitat      
Hallo throat,

Zitat:
Das Problem ist ich bei frt dynamischen variablen folgendermassen gelöst habe

Diesen Satz verstehe ich nicht.

Ich rate von ASSIGNIN ausdrücklich ab. "Ferngesteuert" Variablen in einem anderen Workspace zu erstellen macht das Debuggen sehr viel schwerer und es bremst Matlab massiv aus.
Du findest viel dazu in diesem Forum unter dem Stichpunkten ASSIGNIN, EVALIN udn EVAL.

Das Posten der Fehlermeldung ist schonmal ganz gut. Wir benötigen aber auch die dazugehörige Code-Zeile, um zu verstehen, wo das Problem liegt. Nur anhand der Fehlermeldung kann man keinen Verbesserungsvorschlag machen. Auch auf Deine Mitteilung von 16:59 kann man nicht antworten, ohne den Code zu sehen.
Bitte, throat, versuche genügend Informationen in Deine Mitteilungen zu packen, so dass eine Antwort möglich ist.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
throat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2013, 20:51     Titel:
  Antworten mit Zitat      
Nun ja ich bekomme immer die folgende Meldung, wenn ich die Sequence von cell-array übergebe

Zitat:

Undefined function 'le' for input arguments of type 'cell'.



Könnte ich den Inhalt von testss{1} neu organisieren, wie ind em Beispiel hier:

http://www.mathworks.com/matlabcent.....reader/view_thread/245113

Code:
From the reference page for MOLWEIGHT, it looks like it accepts an
individual sequence, not a cell array of sequences. Therefore, this should
work:


molecular_weight = zeros(size(sequences));
for k= 1:numel(sequences)
    molecular_weight(k) = molweight(sequences{k});
end

% or

molecular_weight = cellfun(@molweight, sequences);
 
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.05.2013, 05:56     Titel:
  Antworten mit Zitat      
Hallo throat,

Ich warte noch auf eine Antwort auf http://www.gomatlab.de/imagesc-auf-daten-t28921.html#114953.

Die Fehlermeldung alleine bringt hier nichts, weil Verbesserungsvorschläge für den Code nur dann gemacht werden können, wenn Du auch den Code dazu postest. Ich dachte, ich hätte bereits hinreichend darauf in meiner letzten Nachricht hingewiesen. Hast Du sie gelesen?

Gruß, Jan
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.