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

xlswrite mit syms

 

kev-man
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 19.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2007, 03:36     Titel: xlswrite mit syms
  Antworten mit Zitat      
Hallo,
also ich habe mal ne Frage. Ich habe eine 4x4 Matrix und diese besteht lediglich aus symbolischen Variablen. Ich brauche aber GANZ bestimmte stellen dieser Matrix zur weiteren Rechnung. Die einzelen "Stellen" der MAtrix habe ich mir auch schon raus kopiert, nun möchte ich aber diese noch in eine extra Exeltabelle kopieren bzw speichern. Frage WIE??? ich habs mit xlswrite versucht und er schreibt mir auch ne datei nur leider ist die leer. Wie gesagt es handelt sich um symbolische Variablen. Wie stelel ich das jetzt am dööfsten an? Smile

Danke im voraus.
Private Nachricht senden Benutzer-Profile anzeigen


Nyquist
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 19.11.07
Wohnort: Laupheim
Version: ---
     Beitrag Verfasst am: 19.12.2007, 09:32     Titel:
  Antworten mit Zitat      
Guten morgen kev-man,

also es funktioniert bestimmt probier es mal so

Code:

%Verbindung zum Excel aufbauen
actxserver('Excel.Application');
%Daten schreiben
xlswrite( name , Data , 'Name Tabellenblätter','A1:D4'); %nur Beispiel
%beim lesen genau gleich
Data = xlsread( name , 'Name Tabellenblätter','A1:D4');
 
 


du kannst auch als range nur ein Feld angeben z.b. nur 'A1'
_________________

Mit freundlcihem Gruß
Nyquist
Private Nachricht senden Benutzer-Profile anzeigen
 
kev-man
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 19.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2007, 09:56     Titel:
  Antworten mit Zitat      
Hi, danke dir für deine Hilfe, jedoch hat es leider nicht funktioniert.
??? Error using ==> xlswrite at 114
Input data must be a numeric, cell, or logical array.

das ist mein programmcode:
clear all;
close all;
clc;

[D12, D23, D34, D45, D15] = Vorkin_daten_sym ();

r11 = D12(1, 1);


actxserver('Excel.Application');
xlswrite( 'test.xls' , D12 , 'Matrix','A1:D4');

Der r11 "vektor" war nrun test ob es vielleicht so funktioniert. Tut es aber auch net. Wie gesagt die Variablen sind ALLE Symbolische Variablen. Er Schreibt halt auch immer ne Exel datei. Nur halt ne leere.
Private Nachricht senden Benutzer-Profile anzeigen
 
Nyquist
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 19.11.07
Wohnort: Laupheim
Version: ---
     Beitrag Verfasst am: 19.12.2007, 10:42     Titel:
  Antworten mit Zitat      
was steht den eigentlich in D12 drin, das ist für mich nicht so ganz ersichtlich????

du gibst außerdem an er soll die Daten in einen Bereich von A1:D4 schreiben
dann sollte deine Matrix auch eine 4x4-Matrix sein.

Matrix=[1,2,3,4;4,5,6,7;1,2,3,4;4,5,6,7]

probier es mal mit dieser Matrix und du wirst sehen es funktioniert. der Bereich(range ) und die Größe der zu schreibenden Daten sollten stimmen.

Außerdem solltest du den Namen ohne .xls angeben das macht Matlab automatisch Very Happy
_________________

Mit freundlcihem Gruß
Nyquist
Private Nachricht senden Benutzer-Profile anzeigen
 
kev-man
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 19.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2007, 12:56     Titel:
  Antworten mit Zitat      
Also die Matritze ist eine 4x4 Lagematritze mit den Denavit Hartenberg Parameter. Ich studiere Maschinenbau und arbeite neben bei an der UNI- in der Robottik.
Ich habe also eine 4x4 Lagematritze mit symbolischen Variablen.
In jeder Matritzenposition von r11 bis r44 stehen Sachen wie cos(b1)-sin(b1) und diese sachen also die komplette Matritze möchte ich gerne in eine externe Exeltabelle haben um diese dann mit C++ wieder auslesen zu lassen und dort weiter zu verarbeiten. Das die Matritze geschrieben wird die du mir gegeben hast ist kalr da diese numerische Werte enthält und keine symbolischen variablen.

Nochmal zu den Befehlen. Diese stehen wie folgt in meinem skript

actxserver('Excel.Application');

xlswrite( 'test.xls' , D12 , 'Matrix','A1:D4');

das 'test.xls' muss ich irgendwie ran machen da er sonst bei mir gar nichts schreibt an Dateien. wenn ich test.xls oder 'test' schreibe dann passiert leider nichts.

wenn ich das Skript so ausführe bekomme ich folgende Fehlermeldung

??? Error using ==> xlswrite at 114
Input data must be a numeric, cell, or logical array.

Error in ==> Haupt_sym at 15
xlswrite( 'test.xls' , D12 , 'Matrix','A1:D4');

Ich bin kurz vorm verzweifeln
Private Nachricht senden Benutzer-Profile anzeigen
 
Nyquist
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 19.11.07
Wohnort: Laupheim
Version: ---
     Beitrag Verfasst am: 19.12.2007, 14:22     Titel:
  Antworten mit Zitat      
Sers ich hab ein bisschen nachgelesen auf der Mathworks Seite.

http://www.mathworks.com/products/symbolic/functionlist.html
Conversions
double Convert symbolic matrix to MATLAB numeric form


Wenn ich mich nicht irre brachst du die Symbolic Toolbox. Mit dieser kannst du deine symbolic matrix in eine numerische Form bringen, dann müsste es gehen.

Code:

xlswrite( 'test.xls' , double(D12) , 'Matrix','A1:D4');
 


probier es mal so sonst weiß ich auch nicht mehr weiter
_________________

Mit freundlcihem Gruß
Nyquist
Private Nachricht senden Benutzer-Profile anzeigen
 
kev-man
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 19.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.12.2007, 01:05     Titel:
  Antworten mit Zitat      
Es geht net AAAAAAAAAAAAAAAAAA.

Ich habe alles versucht. double und vpa und und und. Aber nix geht.
Immer wieder die selbe fehlermeldung
??? Error using ==> xlswrite at 114
Input data must be a numeric, cell, or logical array.


SO wenn ich jetzt versuche das in ein cell array zu pinseln geht das auch nicht. Da gibt er mir immer ne lehre Datei aus. Was ja logisch ist. Ich verzweifel gleich. Ich brauch dringenst ne lösung bis freitag mittag sonst gibts arsch voll vom Cheffe Very Happy.
Private Nachricht senden Benutzer-Profile anzeigen
 
kev-man
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 19.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.12.2007, 01:40     Titel:
  Antworten mit Zitat      
Also ich habe jetzt glaub ich ALLE Hilfedateien gelsen die es gibt auf der weiten Welt. Selbst die auf japanisch und ich kann nicht mal Japanisch.
Wie es aussieht KANN Matlab keine rein Sym Variablen ausschreiben. Warum auch immer. Jetzt habe ich nen 2 Lösungsansatz. Ist es möglich, z.B.: die Position r11 der Matrix (also den Inhalt der symbolischen Variable) Als char einfach aus zu geben. ALso das ich quasi eine variable (meinetwegen r11) mit dem inhalt als char beschreibe? weil DAS könnte ich mir ja dan ausgeben lassen.
Weiss jeder was gemeint ist?
Private Nachricht senden Benutzer-Profile anzeigen
 
kev-man
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 19.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.12.2007, 01:51     Titel:
  Antworten mit Zitat      
OK das ist jetzt zwar nen Selbstgespräch aber das ja egal. Wollte nur mitteilen das es geklappt hat. Ich lasse es jedoch nicht in eine xls datei schreiben da er dort jeden Buchstaben in eine extra Spalte packt, lass ich es mir in eine TXT schreiben das geht genau so gut zur weiterverarbeitung.

r11 = char(D12(1, 1));


dlmwrite('test.txt', r11, '')

das der code dafür. Einfach aber effektive für mich. Hätt ich auch alleine drauf kommen können Smile
Ich danke trotzdem recht herzlich für eure Hilfe. Bis die Tage
Private Nachricht senden Benutzer-Profile anzeigen
 
laura84

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2009, 11:36     Titel:
  Antworten mit Zitat      
Hallo,

ich hätte hierzu auch nochmal eine Frage. Hier mal mein Code:

Code:
a=1;
w=2*pi;
f=10;
n=(0.1/16);
time=(0:n:0.1)';
v_sin=a.*sin(w.*f.*time);
data_out = [v_sin'];
actxserver('Excel.Application');
xlswrite( 'Funktionswerte' , data_out , 'Matrix', 'A1:A17');


Was mache ich falsch? Er schreibt mir in die Excel Datei immer nur 0er rein.

Ich möchte nachher dann noch die Funktionswerte in Hexadezimal Code wandeln und dann auch in die Excel Tabelle schreiben, da habe ich aber gleich eine Fehlermeldung bekommen:
"??? Error using ==> horzcat
CAT arguments dimensions are not consistent."

Könnt ihr mir damit auch helfen?

Ich danke schon mal im Voraus!
Grüße Laura
 
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.