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

Arbeiten mit dem Workspace

 

sKelet0n
Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 06.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2015, 12:27     Titel: Arbeiten mit dem Workspace
  Antworten mit Zitat      
Hey Leute, bin neu hier und absoluter Matlab Anfänger.

Ich habe die folgende Tabelle:
Zitat:
Form Länge RI RA Dicht GModul

VZ 300 200 200 7.9 81000
K 400 400 200 7.9 81000
VZ 300 200 200 7.9 81000
VZ 300 300 300 7.9 81000
VZ 200 200 200 7.9 81000
VZ 200 300 300 7.9 81000
K 300 300 200 7.9 81000
VZ 200 200 200 7.9 81000
K 200 200 300 7.9 81000
VZ 300 300 300 7.9 81000
HZ 400 200 300 7.9 81000
VZ 100 300 300 7.9 81000
VZ 200 200 200 7.9 81000


Mit diesem Code:
Code:
[filename, pathname]=uigetfile('*txt','Bitte wählen Sie eine *.txt-Datei zum einlesen aus'); %Laden der txt Datei
fid=fopen(fullfile(pathname, filename),'r');
strang=cell(textscan(fid, '%s %f %f %f %f %f', 'headerlines',1)); %Geladen werden 6 Spalten, die Headline = erste Zeile wird weggelassen
fclose(fid);


öffne ich die Txt Datei und der Inhalt der 6 Spalten wird im Workspace platziert.

Im Workspace sieht das dann zB so aus: Anhang a
Der Inhalt einer Cell sieht dann so aus: Anhang b

Das sieht ja für mich als Anfänger schonmal ganz gut aus. Nur was mache ich jetzt damit? Wie kann ich mir zB alles als Tabelle (wie in der txt) im Window anzeigen lassen? Wie kann ich zB jetzt Spalte 2 als Matrix A definieren, Spalte 3 als Matrix B und diese dann mulitiplizieren.

Danke für eure Hilfe

b.png
 Beschreibung:

Download
 Dateiname:  b.png
 Dateigröße:  8.49 KB
 Heruntergeladen:  221 mal
a.png
 Beschreibung:

Download
 Dateiname:  a.png
 Dateigröße:  5.91 KB
 Heruntergeladen:  217 mal
Private Nachricht senden Benutzer-Profile anzeigen


sKelet0n
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 06.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2015, 13:36     Titel:
  Antworten mit Zitat      
So hab schonmal was heraus gefunden:

Code:
A = cellstr(num2str(strang{1, 2})) %Definiert die Spalte eines Strangs bestehend aus Zahlen als A in Form einer Tabelle (NICHT als MATRIX A!!!!!!!!!!!)


Jetzt habe ich die Spalte 2 meines Strangs als Cell definiert.

Mit
Code:
bekomme ich 300 ausgegeben. Soweit korrekt.
Allerdings liefert mir
Code:
A{1,1}+A{1,1}
nicht "600" sondern eine 1x3 Matrix. Wieso ist das so, und wie kann ich mir den String als Matrix und nicht als Cell ausgeben lassen?
Private Nachricht senden Benutzer-Profile anzeigen
 
sKelet0n
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 06.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2015, 13:58     Titel:
  Antworten mit Zitat      
Weiteres Problem:

Code:
>> A = mat2str(num2str(strang{1, 2}))

A =

['300';'400';'300';'300';'200';'200';'300';'200';'200';'300';'400';'100';'200']

>> size(A)

ans =

     1    79

>> A{1,1}
Cell contents reference from a non-cell array object.
 
>> A(1,1)

ans =

[

>> A(1,2)

ans =

'

>> A[1,2]


Ich gebe mir die Spalte als Matrix aus, jedoch macht er mir anstatt ne 13x1 oder 1x 13 Matrix eine 1x79 Matrix. Die 79 sind alle Zeichen. Was soll der Quatsch?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Vorschlag:
Code:
numdata = cell2mat(strang(2:end));


Dann hast du eine Matrix, mit der du "normal" arbeiten und indizieren kannst.

Für die tabellarische Darstellung bietet sich an, mit Tables und readtable statt textscan zu arbeiten.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 06.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2015, 15:50     Titel:
  Antworten mit Zitat      
Ja vielen Dank, danach habe ich gesucht! Super schnelle Antwort Smile (y)

Eine Frage habe ich dann noch spontan:
Die "2" bedeutet, aber Spalte 2? Weil ändere ich das in 1 zeigt er mir nen Error an. Dies liegt dann warscheinlich an den Buchstaben, anstatt Zahlen, richtig?

Wie kann ich den von Matlab:
Code:
Umrechnungsfaktor beeinflussen/ändern?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.10.2015, 16:03     Titel:
  Antworten mit Zitat      
Hallo,

deine erste Spalte sind Strings. Deswegen erst ab der 2. Spalte umwandeln.

Das Anzeigeformat kannst du mit format abändern, z.B.
Code:


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.