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

Vermeiden von Länge gleich 0

 

antoni81
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 21.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2011, 00:00     Titel: Vermeiden von Länge gleich 0
  Antworten mit Zitat      
Hallo,

ich bin neu bei Matlab Programierung und habe ein kleines Problem.

ich hab das folgende Teil-Code:
Code:
A= randn(128,256);
sizeA = size(A);
x = zeros(sizeA(2),1);
X = find(abs(x)>0);

 


Im Code muss ich ja der
Code:
benutzen(
Code:
Y =(length(j),length(k),length(X))) und Z=Y/.iterationen
. Aber nach 10000 Iterationen bekomme ein Fehler, dass die
Code:
gleich Null ist, was dazu führt, dass man Y nicht berechnen kann.

Die Frage ist, gibt es einen Befehl oder eine Methode, um das zu vermeiden bzw.
Code:
ungleich null sein muss.

bitte um Hilfe

Danke
Private Nachricht senden Benutzer-Profile anzeigen


rainer87

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2011, 00:37     Titel:
  Antworten mit Zitat      
ich verstehe deinen code zwar nicht aber:

isempty(variable)

gibt dir an ob eine variable leer ist..
 
antoni81
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 21.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2011, 00:53     Titel:
  Antworten mit Zitat      
Hi,

Bei jeder Iteration bekommt man ja aufgrund von randn ein Wert von X bzw. length(X). Während der Simulation kommt zu einer Stelle, in der length(X) = 0 ist, so bricht die Simulation ab, da die length(X) ungleich sein muss.


So, was könnte ich machen , damit der Fall (lengTh(X)=0) nicht aufgetreten werden soll.??ß


Danke

antoni
Private Nachricht senden Benutzer-Profile anzeigen
 
rainer87

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2011, 01:19     Titel: Re: Vermeiden von Länge gleich 0
  Antworten mit Zitat      
antoni81 hat Folgendes geschrieben:

Code:
A= randn(128,256);
sizeA = size(A);
x = zeros(sizeA(2),1);
X = find(abs(x)>0);
 




ich find in deinem angegeben quellcode keine anderen zuweisungen von X als den zitierten code
x enthält hier nur 0.
und X= find(abs(x)>0) wird dir eigenltich direkt einen leeren vektor liefern.
was machst du wo mit x?

ansonsten kann ich nur sagen, fange den fall ab und weise X oder x einen default wert zu.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.12.2011, 09:22     Titel:
  Antworten mit Zitat      
Hallo antoni81,

Ich verstehe weder die Frage noch den geposteten Code. Wie man "length(X)==0" vermeiden kann, läßt sich nur sagen, wenn man die Definition von X kennt.
Bitte poste eine Kopie aller relevanten Abschnitte Deines Programms.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
antoni81
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 21.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2011, 00:17     Titel:
  Antworten mit Zitat      
Hallo,

ich glaube , wenn ich den code gebe, hilft nicht weiter, da aus function handle besteht, mit viel zu viel Dateien.

Die Frage ist, wie man -wenigstens allgemein- vermeidet, dass eine Länge von einem Zufallsvektor gleich null ist, damit eine Simulation nicht abgebrochen wird.....also allgemein.


Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.12.2011, 09:57     Titel:
  Antworten mit Zitat      
Hallo antoni81,

Die Frage ist unklar, deswegen hatte ich gehofft, der Code würde Klarheiten bringen.
Die Länge eines Zufallsvektors ist genauso groß, wie Du ihn definierst:
Code:
X = randn(1, 125);

Dies erzeugt einen Vektor der Länge 125 - natürlich. Die einzige mögliche Antwort ist also: Um zu vermeiden, dass ein Zufallsvektor die Länge Null hat, erzeugen einen, der länger ist.

Ich glaube aber, dass Du ein anderes Problem hast. Bisher ist aber noch nicht verständlich, woher Deine Zufallsvektoren stammen, weshalb sie leer sein können und weshalb "die Simulation abbricht".
Bitte poste also die relevanten Details.

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.