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

Spalte einer Matrix bearbeiten und als neue Spalte anhängen

 

Pajo
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 30.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.01.2014, 12:56     Titel: Spalte einer Matrix bearbeiten und als neue Spalte anhängen
  Antworten mit Zitat      
Hallo,
bin trotz heftigen Studierendes diverser Tutorials blutiger Anfänger und habe hier vermutlich eine ebensolche Frage:

Ich habe ein Datenfeld. Eine Spalte dieses Feldes will ich elementweise umrechnen und als neue Spalte an das Feld anhängen.

Code:

Tabelle= {
    'Zellulose (in Holzkonstruktion)'   0.039;
    'Korkschrot expandiert'   0.05   ;
    'Mineralwolle'   0.033    
    };
       
Tabelle (:,3) = 1 - Tabelle(:,2)/2
   
 


Geht natürlich irgendwie nicht. Geholfen habe ich mir mit ...

Code:
 
           Vektor1 =  Tabelle(:,2);
           Vektor2 = 1 - cell2mat(Vektor1)./2
 

...aber jetzt bekomme ich den Vektor2 nicht als Spalte an Tabelle. DAs geht doch sicher irgendwie ganz einfach...

Herzlichen Dank und Gruß
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.01.2014, 13:51     Titel:
  Antworten mit Zitat      
Hallo,

mit num2cell könntest du das wieder in ein Cell Array zurückwandeln.
Code:
Tabelle(:,3) = num2cell(Vektor2);


Ich würde jedoch generell davon abraten, auf die Dauer Cell Arrays zum Speichern von Daten dieses Formats zu nutzen, da du bei den numerischen Daten eben ständig umwandeln musst.

Vorschlag stattdessen:
Überschriften und Daten in getrennten Variablen abspeichern oder Tables. Tables wären noch besser, aber erst in 2013b verfügbar. Als Alternative zu Tables gibt es in vorherigen Releases die Dataset Arrays aus der Statistics Toolbox.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Pajo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 30.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.01.2014, 13:59     Titel:
  Antworten mit Zitat      
Hallo Harald,

toll, danke für die Antwort! Ich verstehe es zwar noch nicht, aber es funktioniert zumindest schon mal! Über den Hinweis mit den Tables werde ich mal grübeln, habe nämlich die 2013b-Version.

Grüße
Pajo
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.01.2014, 15:34     Titel:
  Antworten mit Zitat      
Hallo,

das Problem sind die unterschiedlichen Datentypen: du speicherst die Daten als Cell Arrays. Mit denen kann man aber nicht rechnen, deswegen musstest du die Daten mit cell2mat in double umwandeln. Das passt dann aber nicht in das Cell Array --> zurück mit num2cell.

Hier die Alternative mit tables - geht aber nur spaltenorientiert, und die Spaltenüberschriften müssen gültige Variablennamen sein.

Code:
Tabelle= table(0.039, 0.05, 0.033, 'VariableNames', ...
    {'Zellulose', 'Korkschrot', 'Mineralwolle'});
Tabelle{2,:} = ( 1 - Tabelle{1,:} )/2


Grüße,
Harald
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.