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

Vektoren unterschiedlicher Länge in Matrix zusammenfügen

 

Sebi0491

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2014, 19:38     Titel: Vektoren unterschiedlicher Länge in Matrix zusammenfügen
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes Problem:

Gegeben ist die Matrix X (beispielhaft):

X=[1 6 1 8 5 4 7 19 15 17 15 8 9 1 2 4 6 16 15 15 18 15 2 4 5 8 4 6 1 9;
9 6 2 1 4 5 3 5 15 26 15 13 14 18 1 2 5 4 12 14 18 16 13 1 2 3 6 8 9 4;
5 6 9 8 4 1 2 3 7 4 15 12 19 16 14 5 2 3 8 1 4 15 16 19 18 13 1 8 6 2;
4 6 2 1 4 8 9 6 15 12 13 26 19 17 15 1 2 3 0 5 8 9 4 15 16 12 13 17 18 1]';

Ich möchte nun eine Matrix Z, die die Indizes aller Werte größer oder gleich 10 ausgibt.

Mein Versuch ist:
Code:

Y=repmat(10,length(X),4); % dient dazu, dass ich jedes Element von X mit dem Grenzwert vergleichen kann

Z=zeros(30,4); % hier sollen die "Werte größer oder gleich 10" eingetragen werden

for i=1:4
    W(:,i)=find(X(:,i)>=Y(:,i));
    Z(1:length(W))=W;
end
 

Und schließlich sollten noch die übrigen Nullen alle gelöscht werden.

Die Lösung sollte schlussendlich sein:

Z=[8 9 10 11 18 19 20 21 22; 9 10 11 12 13 14 19 20 21 22 23; 11 12 13 14 15 22 23 24 25 26; 9 10 11 12 13 14 15 24 25 26 27 28 29]';

Kann mir da jemand behilflich sein?

Gruß Sebi


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 18.11.2014, 20:02     Titel:
  Antworten mit Zitat      
Diese Lösung ist nicht möglich, da eine unterschiedliche Anzahl von Elementen in einer Spalte/Reihe nicht möglich sind.

Entweder musst die Vektoren einer Reihe oder Spalte irgendwie anders anorden, z.B. einem struct. Oder aber mit den Dimensionen von X arbeiten und mit den Nullen von der Bedingung X>=10 leben oder z.B. durch NaN ersetzen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sebi0491

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2014, 01:21     Titel:
  Antworten mit Zitat      
Oh..das ist schade. Wie funktioniert das dann, wenn ich es mit Nullen mache?
 
Sebi0491

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2014, 01:23     Titel:
  Antworten mit Zitat      
Was stellt eigentlich den Unterschied zwischen Nullen und NaN dar? Im Grunde steht ja dann beide Male nichts da Razz Oder versteh ich da was falsch?

Sorry für die dumme Frage...
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 19.11.2014, 01:42     Titel:
  Antworten mit Zitat      
Code:
% Alle Werte < 10 = Null setzen
X(X<10) = 0;
% oder Not a Number = NaN
X(X<10) = NaN;
 


Null und NaN ist nicht das gleiche, da allein schon ein Unterschied im Datentyp besteht. Es lassen sich damit z.B. besser "ungewollte" Elemente unterscheiden. Oder Rechenausdrücke wie 0/0 = NaN
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 19.11.2014, 03:06     Titel:
  Antworten mit Zitat      
Ein Unterschied macht es bspw. in Plots.

Code:
x = (0:.01:2*pi)';
y = sin(x);
y(100:200) = 0;
y(400:500) = NaN;
plot(x,y)


Grüße
_________________

Richtig fragen
Debugging
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.