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

Datei laden

 

morbias_one
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 13.12.08
Wohnort: ---
Version: 5.3.1
     Beitrag Verfasst am: 28.12.2008, 14:42     Titel: Datei laden
  Antworten mit Zitat      
Hallo Forum Wink ,

wir müssen für ein Projekt eine Datenbank in ein Programm einlesen. Meine Frage ist, kann ich mit dem "load-Befehl" eine *.mat Datei gleich zum Anfang "in das Programm" laden, sodass ich mir z.B. die Datensätze anzeigen lassen kann?

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


Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.12.2008, 18:05     Titel:
  Antworten mit Zitat      
In was für ein Programm?
 
morbias_one
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 13.12.08
Wohnort: ---
Version: 5.3.1
     Beitrag Verfasst am: 28.12.2008, 19:13     Titel:
  Antworten mit Zitat      
In was für ein Programm wäre doch eigentlich egal, oder? Ist es denn prinzipiell möglich sowas zu machen?

Zum Programm: Es soll eine Datei (diese *.mat Datei) geladen werden wo Schülerdaten enthalten sind. Diese sollen dann sortiert ausfegeben werden.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.12.2008, 19:15     Titel:
  Antworten mit Zitat      
Ja, wenn Du das Programm selber schreibst ist das natürlich möglich.
 
morbias_one
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 13.12.08
Wohnort: ---
Version: 5.3.1
     Beitrag Verfasst am: 28.12.2008, 19:18     Titel:
  Antworten mit Zitat      
Ja, und wie ist es möglich? Einfach mit dem "load"-Befehl? Wenn ich es so mache, dann lädt er zwar die Datenbank aber ich kann die Datensätze nicht ausgeben. Die Tabelle bleibt dann leider leer Sad

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.12.2008, 21:02     Titel:
  Antworten mit Zitat      
Ja, mit
Code:
. Der Link führt zur Hilfe zum Befehl.
Welche Datenbank, welche Datensätze, welche Tabelle?
 
morbias_one
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 13.12.08
Wohnort: ---
Version: 5.3.1
     Beitrag Verfasst am: 29.12.2008, 20:08     Titel:
  Antworten mit Zitat      
Hallo,

ich habe ja oben schon geschrieben, dass ich eine *.mat-Datei mit Schülerdaten habe. Darin sind die "Schülernummer", der Name, und das Land des Schülers gespeichert. Ich muss nun diese Datei bei Programmstart laden. Mit einem Menüpunkt soll ich dann diese Datei ausgeben können (tabellarisch).

Erfolgt die Ausgabe der Werte dann mit "fscanf" oder mit "fprintf"?

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.12.2008, 20:53     Titel:
  Antworten mit Zitat      
Ausgeben eher mit
Code:
, in eine Datei schreiben mit
Code:
.
 
morbias_one
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 13.12.08
Wohnort: ---
Version: 5.3.1
     Beitrag Verfasst am: 29.12.2008, 21:40     Titel:
  Antworten mit Zitat      
Hm, ok. Ich komm da nicht weiter...

Also das hier ist diese Datei. Wie kann ich nun die Sachen, die in dieser Datei stehen ausgeben?

Mit
Code:
bekomme ich heraus, das
Code:
eine Variable ist, richtig?

Mit
Code:
sprintf('%-20',student);
müsste er mir doch etwas ausgeben, oder?

Bin schon leicht verzweifelt Sad

Liebe Grüße
Julia[/code][/url]
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.12.2008, 09:59     Titel:
  Antworten mit Zitat      
Ja, Student ist die Variable.
Nein, Dein Befehl gibt nichts aus, weil Du student statt Student schreibst und das kein gültiger format string ist.

Eine einfache Tabelle könntest Du so erhalten:
Code:
load daten
zeilen=size(Student,1);
disp(repmat('-',1,43));
str=sprintf('|%-15s|%-25s|','Name','Land');
disp(str);
disp(['|' repmat('-',1,41) '|']);
for k=1:zeilen
    text=textscan(Student(k,:),'%s %s','Delimiter',',');
    str=sprintf('|%-15s|%-25s|',strtrim(char(text{1})),strtrim(char(text{2})));
    disp(str);    
end
disp(repmat('-',1,43));

Zum besseren Verständnis kannst Du Dir mal die Hilfe zu den einzelnen Befehlen durchlesen.
 
morbias_one
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 13.12.08
Wohnort: ---
Version: 5.3.1
     Beitrag Verfasst am: 30.12.2008, 23:20     Titel:
  Antworten mit Zitat      
Hallo und Danke für deine Hilfe.
Ich habe deinen Code gerade mal probiert. Er sagt immer

Code:
-------------------------------------------
|Name           |Land                     |
|-----------------------------------------|
??? Undefined function or variable 'textscan'.

Error in ==> F:\test02.m
On line 8  ==>     text=textscan(Student(k,:),'%s %s','Delimiter',',');


und ich bekomme das nicht weg. Er kennt da ja anscheinend die Sache mit dem "textscan" nicht.
Umd nun...? Rolling Eyes

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.12.2008, 10:20     Titel:
  Antworten mit Zitat      
Vermutlich benutzt Du eine ältere Matlab-Version als ich.

Klappt folgendes?
Code:
load daten
zeilen=size(Student,1);
disp(repmat('-',1,43));
str=sprintf('|%-15s|%-25s|','Name','Land');
disp(str);
disp(['|' repmat('-',1,41) '|']);
for k=1:zeilen
    [name,land]=strread(Student(k,:),'%s %s','delimiter',',');
    str=sprintf('|%-15s|%-25s|',strtrim(char(name)),strtrim(char(land)));
    disp(str);    
end
disp(repmat('-',1,43));
 
morbias_one
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 13.12.08
Wohnort: ---
Version: 5.3.1
     Beitrag Verfasst am: 01.01.2009, 18:51     Titel:
  Antworten mit Zitat      
Hallo,

jetzt zeigt er bei mir

Code:
-------------------------------------------
|Name           |Land                     |
|-----------------------------------------|
??? Undefined function or variable 'strread'.

Error in ==> f:\test02.m
On line 9  ==>     [name,land]=strread(Student(k,:),'%s %s','delimiter',',');


Funktioniert also auch nicht Sad

Liebe Grüße
Julia
Private Nachricht senden Benutzer-Profile anzeigen
 
morbias_one
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 13.12.08
Wohnort: ---
Version: 5.3.1
     Beitrag Verfasst am: 01.01.2009, 20:26     Titel:
  Antworten mit Zitat      
So, die Ausgabe Funktioniert bei mir jetzt

Code:
load daten
m=Student;
disp(' '),disp('   Daten geladen!'),disp(' ')
Auswahl=input('   Daten anzeigen?(j,n)  ','s');
if Auswahl=='j'
   disp(' '),disp('Name     Land '),
   disp(' '),disp('-----------------------------------------------------'),disp(' ')
   disp(' '),disp(m);    
end
disp('   WEITER MIT ENTER!')
Student=m;
pause
clc
 


Jetzt kommt aber gleich die nächste Sache: es soll den Namen noch eine 5-stellige, fortlaufende Matrikelnummer hinzugefügt werden. I have no idea Confused

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.01.2009, 16:13     Titel:
  Antworten mit Zitat      
Trag doch mal in Deinem Forum-Profil die von Dir benutzte Matlab-Version ein, dann kann man gezielter Vorschläge machen.

Ich würde das so aber nicht als Tabelle durchgehen lassen...
Klappt es so bei Dir?
Code:
load daten
zeilen=size(Student,1);
str=sprintf('| %-12s| %-15s | %-25s |','Matr.-Nr.','Name','Land');
padding=length(str);
disp(repmat('-',1,padding));
disp(str);
disp(['|' repmat('-',1,padding-2) '|']);
matr=10000;
for k=1:zeilen
    %[name,land]=strread(Student(k,:),'%s %s','delimiter',',');
    s=Student(k,:);
    sep=strfind(s,',');
    name=s(1:sep-1);
    land=s(sep+1:end);
    str=sprintf('| %-12d| %-15s | %-25s |',matr,strtrim(char(name)),strtrim(char(land)));
    disp(str);
    matr=matr+1;
end
disp(repmat('-',1,padding));

Für den Fall, dass es wieder nicht klappt, hänge ich die Ausgabe mal als Text-Datei an.

Je nach dem was hier gemacht werden soll würde ich zum Speichern der Daten etwas anderes nehmen, als ein array of chars...

ausgabe.txt
 Beschreibung:

Download
 Dateiname:  ausgabe.txt
 Dateigröße:  1.47 KB
 Heruntergeladen:  949 mal
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.