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

einen einzigen cell array zu einer matrix trans.

 

lexis
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2009, 13:48     Titel: einen einzigen cell array zu einer matrix trans.
  Antworten mit Zitat      
Hallo,

ich habe einen Cell-Array <744x1 cell> der aus Zahlen besteht, die ich als Spalte an eine bestehte Matrix anhängen möchte.

Mit cell2mat komme ich nicht wirklich voran Sad

Liebe Grüße
Lexis
Private Nachricht senden Benutzer-Profile anzeigen


Trimax
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 54
Anmeldedatum: 09.04.09
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 16.06.2009, 13:52     Titel:
  Antworten mit Zitat      
Hi,

bitteschön:

Code:

Matrix = magic(5); %beliebige 5x5 Matrix
C = {1 2 3 4 5}'; %anzuhängende Spalte
tmp = cell2mat(C);
Matrix = [Matrix tmp];
 


Nach dem x-ten editieren, sollte es nun hinhauen Wink

VG
Trimax

Zuletzt bearbeitet von Trimax am 16.06.2009, 14:04, insgesamt 2-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
lexis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2009, 14:01     Titel:
  Antworten mit Zitat      
hallo,

vielen dank für die schnelle antwort, doch leider löst das mein problem so noch nicht, da ich danach immer noch einen cell array und keine matrix habe Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
lexis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2009, 14:04     Titel:
  Antworten mit Zitat      
ich habe das problem glaube ich gerade gefunden, da sind noch leerzeichen vor oder nach den zahlen, deshalb funktioniert das auch nicht, wie in deinem beispiel Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Trimax
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 54
Anmeldedatum: 09.04.09
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 16.06.2009, 14:10     Titel:
  Antworten mit Zitat      
Wenn das so ist, musst du vorher alle "Zahlen" raussuchen.

Code:

Matrix = magic(5); %beliebige 5x5 Matrix
C = {1 ' ' 2 3 ' ' 4 5}'; %anzuhängende Spalte
tmp1 = cellfun(@(x)isnumeric(x),C);
tmp2 = cell2mat(C(tmp1));
Matrix = [Matrix tmp2];
 


VG
Trimax
Private Nachricht senden Benutzer-Profile anzeigen
 
lexis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2009, 14:20     Titel:
  Antworten mit Zitat      
die leerzeichen sind, wenn vorhanden, vor oder nach den zahlen direkt in der zelle.

dann kann ich das doch mit strrep machen, oder?
Private Nachricht senden Benutzer-Profile anzeigen
 
Trimax
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 54
Anmeldedatum: 09.04.09
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 16.06.2009, 14:23     Titel:
  Antworten mit Zitat      
lexis hat Folgendes geschrieben:
die leerzeichen sind, wenn vorhanden, vor oder nach den zahlen direkt in der zelle.


Wieso schreibst du dann, dass dein cell-array aus Zahlenwerten besteht!?
Ein String ist kein Zahlenwert! Egal ob Leerzeichen davor stehen oder nicht.

strrep ist in dem Fall dein Freund.

VG
Trimax
Private Nachricht senden Benutzer-Profile anzeigen
 
lexis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2009, 14:34     Titel:
  Antworten mit Zitat      
die leerzeichen sind mir erst nicht aufgefallen, da sie nur vereinzelt auftreten.

diese sind nun eliminiert. wenn ich nun mit cell2mat fortfahren möchte, macht matlab das auch, aber die zahlen sind ursprünglich 2 stellig und matlab macht daraus dann einen doppelt solangen vektor, da es die zahlen alle einzeln betrachtet.
Private Nachricht senden Benutzer-Profile anzeigen
 
lexis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2009, 14:38     Titel:
  Antworten mit Zitat      
wenn ich im array editor auf eine einzelne zelle klicke, stehen die zahlen auch untereinander - matlab wird mir ewig ein rätsel bleiben Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Trimax
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 54
Anmeldedatum: 09.04.09
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 16.06.2009, 14:41     Titel:
  Antworten mit Zitat      
Bevor wir uns weiter die Finger wund tippen.. poste doch einfach dein Beispiel hier rein. Dann müssen wir nicht mühselig jeden Schritt durchkauen. Und immer zwischen Strings, Zahlen und Ziffern unterscheiden.

VG
Trimax
Private Nachricht senden Benutzer-Profile anzeigen
 
lexis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2009, 14:48     Titel:
  Antworten mit Zitat      
Code:
foF2_jr = cellfun(@(x) char(x), strrep(foF2_jr,' ',''), 'UniformOutput', false);
 


hier liegt nun der fehler
Code:

foF2_jr = cellfun(@(x) char(x), regexp(foF2_jr,'[^[A-Z]]','match'), 'UniformOutput', false);


nachdem ich diesen befehl ausgeführt habe, stehen die zahlen plötzlich untereinander Sad, wenn ich in die celle klicke
Private Nachricht senden Benutzer-Profile anzeigen
 
Trimax
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 54
Anmeldedatum: 09.04.09
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 16.06.2009, 15:08     Titel:
  Antworten mit Zitat      
Mein Vorschlag wäre, eine einzelne Funktion für die Korrektur der Werte einzubauen:

Code:
function deineMainFcn()

Matrix = magic(5); %beliebige 5x5 Matrix
C = {1 ' 2' 3 '  4  ' 5}'; %anzuhängende Spalte
tmp = cellfun(@(x)corr(x),C);
Matrix = [Matrix tmp]

function [in] = corr(in)
    if ~isnumeric(in)
       in = str2double(strrep(in,' ',''));
    end
 


VG
Trimax
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 - 2024 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.