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

Spalten an 3 D Matrix ohne Schleife anfügen?

 

Dirtsa
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2014, 15:04     Titel: Spalten an 3 D Matrix ohne Schleife anfügen?
  Antworten mit Zitat      
Hallo,
ich suche eine Möglichkeit eine zusätzliche Spalte an eine 3D Matrix anzuhängen, ohne eine Schleife zu nutzen. Zum Löschen einer Spalte über alle Elemente habe ich hier folgendes gefunden:
Code:
values = zeros(3,4,5); % <3x4x5 double>
values(:,3,:) = []; % <3x3x5 double>

Allerdings möchte ich das umgekehrte, also values um v=ones (3,1) erweitern. So dass hinterher eine 3x5x5 Matrix entsteht.
Gibt es sowas wie horzcat für 3D?

Vielen Dank im Voraus.

Zuletzt bearbeitet von Dirtsa am 23.01.2014, 15:39, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 23.01.2014, 15:21     Titel:
  Antworten mit Zitat      
sowas?
Code:
values = zeros(3,4,5);
values(:,5,:)=ones(3,5);

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Dirtsa
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2014, 15:38     Titel:
  Antworten mit Zitat      
Das ist eine gute Antwort auf meine Frage, leider löst sie mein Problem nicht.
Ich versuche nochmal es zu beschrieben.
Ich habe eine Matrix < nx1000x140 double > und einen Vektror < nx1 double>. Nun soll der Vektor vor die Matrix gesetzt werden, sodass alle 140 Ebenen nx1001 enthalten und als erste Spalte den Vektor haben.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 23.01.2014, 15:45     Titel:
  Antworten mit Zitat      
ohne zwischenschritt ist mir keine möglichkeit bekannt.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Dirtsa
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2014, 16:17     Titel:
  Antworten mit Zitat      
Ok.
Danke für deine Mühe!
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: 24.01.2014, 13:20     Titel: Re: Spalten an 3 D Matrix ohne Schleife anfügen?
  Antworten mit Zitat      
Hallo Dirtsa,

Wie wäre es mit:
Code:
cat(2, A, repmat(v, 1, 1000));

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

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2014, 12:06     Titel:
  Antworten mit Zitat      
Hallo Jan,
angepasst an meine Matrix habe ich folgendes verwendet:
Code:
>> cat(2, A, repmat(v, 1, 140));
.

Damit erhielt ich aber die folgende Fehlermeldung:
Error using cat
Dimensions of matrices being concatenated are not consistent
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: 28.01.2014, 00:39     Titel:
  Antworten mit Zitat      
Hallo Dirtsa,

Welche Dimension hat A in Deinem Fall?
Man kann ein [M x N1 x P] Array mit einem [M x N2 x P] Array mit CAT(2, ...) zusammenfügen.

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

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.02.2014, 09:42     Titel:
  Antworten mit Zitat      
Hallo Jan,
meine Matrix A hat die Dimension <180x1000x139> und soll von links um den Vektor v < 180x1 > erweitert werden.
Ich versuche also ein [M x N1 x P1] Array mit einem [M x N2 x P2] Array zu verknüpfen.
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.