|
kev-man |
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 19.12.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.12.2007, 02:36
Titel: xlswrite mit syms
|
|
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?
Danke im voraus.
|
|
|
|
|
Nyquist |
Forum-Fortgeschrittener
|
|
Beiträge: 60
|
|
|
|
Anmeldedatum: 19.11.07
|
|
|
|
Wohnort: Laupheim
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.12.2007, 08:32
Titel:
|
|
Guten morgen kev-man,
also es funktioniert bestimmt probier es mal so
du kannst auch als range nur ein Feld angeben z.b. nur 'A1'
_________________
Mit freundlcihem Gruß
Nyquist
|
|
|
kev-man |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 19.12.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.12.2007, 08:56
Titel:
|
|
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.
|
|
|
Nyquist |
Forum-Fortgeschrittener
|
|
Beiträge: 60
|
|
|
|
Anmeldedatum: 19.11.07
|
|
|
|
Wohnort: Laupheim
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.12.2007, 09:42
Titel:
|
|
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
_________________
Mit freundlcihem Gruß
Nyquist
|
|
|
kev-man |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 19.12.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.12.2007, 11:56
Titel:
|
|
|
|
|
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
|
|
|
Nyquist |
Forum-Fortgeschrittener
|
|
Beiträge: 60
|
|
|
|
Anmeldedatum: 19.11.07
|
|
|
|
Wohnort: Laupheim
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.12.2007, 13:22
Titel:
|
|
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.
probier es mal so sonst weiß ich auch nicht mehr weiter
_________________
Mit freundlcihem Gruß
Nyquist
|
|
|
kev-man |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 19.12.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.12.2007, 00:05
Titel:
|
|
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 .
|
|
|
kev-man |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 19.12.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.12.2007, 00:40
Titel:
|
|
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?
|
|
|
kev-man |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 19.12.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.12.2007, 00:51
Titel:
|
|
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
Ich danke trotzdem recht herzlich für eure Hilfe. Bis die Tage
|
|
|
laura84 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.11.2009, 10:36
Titel:
|
|
Hallo,
ich hätte hierzu auch nochmal eine Frage. Hier mal mein Code:
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
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|