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

Matrix mit Lücken füllen

 

simonwilbertz
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 17.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.03.2015, 11:32     Titel: Matrix mit Lücken füllen
  Antworten mit Zitat      
Hallo zusammen,
ich habe glaube ich ein eher ungewöhnliches Problem:
Ist es möglich eine Matrix mit Lücken zu füllen, also leere Einträge zu erzeugen, die nichts enthalten (auch kein NaN). Ziel ist es nämlich Variablen aus einer Matrix aus zu lesen. Diese Variablen stehen aber an bestimmten stellen der Matrix und können auch schonmal keinen Wert haben.

Grüße

Simon
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.03.2015, 11:37     Titel:
  Antworten mit Zitat      
Hallo,

bei einer Matrix (im Sinne von Datentyp double) ist das nicht möglich.
Bei einem Cell Array wäre das möglich.

Die Frage ist aber: kann man nicht im Code NaN als leer/fehlend behandeln?
Falls NaN eine andere Bedeutung haben soll, vielleicht Inf oder -Inf?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
stealth_mx
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 94
Anmeldedatum: 15.06.13
Wohnort: ---
Version: 2013b
     Beitrag Verfasst am: 17.03.2015, 11:50     Titel:
  Antworten mit Zitat      
Wäre sowas eine Option:

Ein Cell mit keinem Eintrag: []
Private Nachricht senden Benutzer-Profile anzeigen
 
simonwilbertz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 17.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.03.2015, 12:45     Titel:
  Antworten mit Zitat      
Okay, der Tipp mit dem "wie mit dem NaN" umgehen hat mir geholfen. Es ist ganz einfach möglich, per if-Schleife eine leere Variable mit

Code:

a_1=[];
 


zu erzeugen, wenn der Wert in der Matrix NaN ist. Ist vielleicht nicht die schönste Lösung aber das tuts ersteinmal.

Vielen Dank

Simon
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: 17.03.2015, 12:56     Titel:
  Antworten mit Zitat      
Hallo simonwilbertz,

Es gibt keine "if-Schleifen".

Code:

Das sieht verdächtig danach aus, als würdest Du einen Index im Namen der Variablen verstecken. In diesem Fall wäre es deutlich effizienter und sauberer, wenn Du erst gar nicht die einzelnen Variablen erzeugst, sonder gleich mit dem CELL-Array weiter arbeitest.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 17.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.03.2015, 13:19     Titel:
  Antworten mit Zitat      
Gut nennen wir sie eben nicht if-Schleife, egal. Und die Benennung ist auch unglücklich, machen wir x,y,z draus.

Aber ist der Cell Array denn in der Lage einen NaN Wert aus der Matrix in Form eines leeren Feldes darzustellen?

Bevor wir aneinander vorbeireden:

1. Ich habe eine "von Hand ausgefüllte" Matrix, in der ich mehrere Werte für eine mehrere Variablen habe:

1 4 8
2 8 1

2. die Variablen sollen in einem .txt Dokument genau so ausgegeben werden:
x y z
1 4 8
2 8 1

3. Der Clou dabei ist, dass diese Werte durch ein TAB getrennt werden müssen (das externe Programm zur Weiterverarbeitung verlangt es so)

4. Falls die Matrix Lücken hat:
1 4 8
2 8

soll die Ausgabe so aussehen
x y z
1 4 8
2 8


da ich das ganze über

Code:

fileID = fopen('input.txt','w');
fprintf(fileID,'%d\t%d\t%d\n',x,y,z);
fclose(fileID);
 

ausgebe, wüsste ich nicht ich, wie ich das mit einem CellArray tuen könnte. Darum bin ich mit meiner oben genannten Lösung erstmal glücklich. Ich freue mich aber trotzdem über eine schönere Lösung. Sorry ich hätte von Anfang an alle Anforderungen nennen sollen.

Grüße

Simon
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.