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

Strings multiplizieren

 

krisztian
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 12.03.09
Wohnort: Wien
Version: 7.1.0.246 SP3
     Beitrag Verfasst am: 01.05.2009, 14:11     Titel: Strings multiplizieren
  Antworten mit Zitat      
Hey, hab schon hier und im Netz etwas gesucht aber leider nichts gefunden.

Ich würde gern zwei Matritzen mit Strings addieren und als Ergebnis dann eine Matrix haben wo dann steht Matrix(1,1)= cosx*sinx

Hat Matlab sowas gar nicht? So kompliziert sollte das doch eigentlich nicht sein oder?

Grüße
krisztian
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 01.05.2009, 15:25     Titel:
  Antworten mit Zitat      
Moin,

und was soll in den Ausgangsmatrizen drin stehen?

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
krisztian
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 12.03.09
Wohnort: Wien
Version: 7.1.0.246 SP3
     Beitrag Verfasst am: 01.05.2009, 15:49     Titel:
  Antworten mit Zitat      
beispiel

Matrix A = cosx sinx
bla tanx

Matrix B = arcsinx bla2
cosx bla3


In der Lösung dann zu Beispiel für die Zelle 1,1

MatrixL(1,1)=cosx*arcsinx+sinx*cosx

Bins grad am programmieren und habs es für den ersten Wert der ersten Spalte und der ersten Reihe auch schon das richtige. Nun sitz ich aber grad dran da Schleifen rein zu frickeln was mich aufgrund des Vorstellungsvermögens was nun wo in welcher Ebene steht etwas verrückt macht Rolling Eyes

So siehts im Moment aus. Etwas wild und ohne Erklärung weil ich halt vorhin erst angefangen hab.
Code:

M1={'a',0,'c','d';
    'e','f','g','h';
    'i','j','k','l';
    'm','n','o','p'};

M2={'A','B','C','D';
    'E','F','G','H';
    'I','J','K','L';
    'M','N','O','P'};

for L=1:1:16



if M1{1,1}~=0 && M2{1,1} ~= 0
   R11={M1{1,1} '*' M2{1,1}};
else
    R11={0};
end

if M1{1,2}~=0 && M2{2,1} ~= 0
   R12={M1{1,2} '*' M2{2,1}};
else
    R12={0};
end

if M1{1,3}~=0 && M2{3,1} ~= 0
   R13={M1{1,3} '*' M2{3,1}};
else
    R13={0};
end



if M1{1,4}~=0 && M2{4,1} ~= 0
   R14={M1{1,4} '*' M2{4,1}};
else
    R14={0};
end

R{L,1,:}={0};

if R11{1,1} ~= 0
    R{L;1;2}= {R11{1,:}};
end

if R12{1,1} ~= 0
    if R1{1,1} == 0
        R1= {R12{1,:}};
    else
        R1= {R1{1,:} '+' R12{1,:}};
    end
end

if R13{1,1} ~= 0
    if R1{1,1} == 0
        R1= {R13{1,:}};
    else
        R1= {R1{1,:} '+' R13{1,:}};
    end
end

if R14{1,1} ~= 0
    if R1{1,1} == 0
        R1= {R14{1,:}};
    else
        R1= {R1{1,:} '+' R14{1,:}};
    end
end


end

 
Private Nachricht senden Benutzer-Profile anzeigen
 
krisztian
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 12.03.09
Wohnort: Wien
Version: 7.1.0.246 SP3
     Beitrag Verfasst am: 01.05.2009, 20:42     Titel:
  Antworten mit Zitat      
Kennt vielleicht jemand folgendes Problem?

Ich lege eine 1x1 Cell an

Code:


Dabei bekomme ich folgende Fehler:

Code:

>> R{1}=0

R =

    [0]

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0
   at com.mathworks.mlwidgets.graphics.PlotArgDescriptor.createFromVarInfo(PlotArgDescriptor.java:163)
   at com.mathworks.mlwidgets.workspace.graphics.GraphingActionFactory.getGraphingActions(GraphingActionFactory.java:54)
   at com.mathworks.mlwidgets.array.CellTable$SelListener.valueChanged(CellTable.java:93)
   at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
   at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
   at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
   at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
   at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
   at javax.swing.DefaultListSelectionModel.setSelectionInterval(Unknown Source)
   at com.mathworks.mlwidgets.array.CellPanel.addNotify(CellPanel.java:54)
   at java.awt.Container.addImpl(Unknown Source)
   at java.awt.Container.add(Unknown Source)
   at com.mathworks.mlwidgets.array.ValuePanel$ContentsReplacer.run(ValuePanel.java:232)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
 


Allerdings nicht immer. Wenn R noch nicht da ist auf jeden Fall und falls R schon angelegt ist hab ich ab und zu Glück und dann wieder nicht. Werd aber auch aus der Fehlernachricht nicht schlau. Gibts dafür vielleicht ne Lösung?

Grüße
krisztian
Private Nachricht senden Benutzer-Profile anzeigen
 
krisztian
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 12.03.09
Wohnort: Wien
Version: 7.1.0.246 SP3
     Beitrag Verfasst am: 02.05.2009, 13:24     Titel:
  Antworten mit Zitat      
So. Damit geht jetzt was ich will.
Muss aber noch vernünftig durchgetestet werden.

Code:

M1={0,'b','c','d';
    'e','f','g','h';
    'i','j','k','l';
    'm','n','o','p'};

M2={'A','B','C','D';
    'E','F','G','H';
    'I','J','K','L';
    'M','N','O','P'};

R{1,1}=0;
R{1,1}=0;
R{1,1}=0;

%for L=1:1:16
for S=1:1:4
for K=1:1:4

%Überprüfen ob eine Null bei der Multiplikation vorkommt
if M1{S,1}~=0 && M2{1,K} ~= 0
   Er{S,1}={M1{S,1} '*' M2{1,K}};
else
    Er{S,1}={0};
end

if M1{S,2}~=0 && M2{2,K} ~= 0
   Er{S,2}={M1{S,2} '*' M2{2,K}};
else
    Er{S,2}={0};
end

if M1{S,3}~=0 && M2{3,K} ~= 0
   Er{S,3}={M1{S,3} '*' M2{3,K}};
else
    Er{S,3}={0};
end

if M1{S,4}~=0 && M2{4,K} ~= 0
   Er{S,4}={M1{S,4} '*' M2{4,K}};
else
    Er{S,4}={0};
end





if Er{S,1}{1,1} ~= 0
    R{S,K}= {Er{S,1}{1,:}};
    eqt=cell2mat(R{S,K});
else
    eqt=0;
end

if Er{S,2}{1,1} ~= 0
    if eqt == 0
        R{S,K}= {Er{S,2}{1,:}};
        eqt=cell2mat(R{S,K});
    else
        R{S,K}= {R{S,K}{1,:} '+' Er{S,2}{1,:}};
        eqt=cell2mat(R{S,K});
    end
end

if Er{S,3}{1,1} ~= 0
    if eqt == 0
        R{S,K}= {Er{S,3}{1,:}};
        eqt=cell2mat(R{S,K});
    else
        R{S,K}= {R{S,K}{1,:} '+' Er{S,3}{1,:}};
        eqt=cell2mat(R{S,K});
    end
end

if Er{S,4}{1,1} ~= 0
    if eqt == 0
        R{S,K}= {Er{S,4}{1,:}};
    else
        R{S,K}= {R{S,K}{1,:} '+' Er{S,4}{1,:}};
    end
end
end
end

 


Weiß noch jemand wie ich das vernünftig ausgeben kann?
Weil einfach nur R liefert mir:

Code:
R =

    {1x11 cell}    {1x11 cell}    {1x11 cell}    {1x11 cell}
    {1x15 cell}    {1x15 cell}    {1x15 cell}    {1x15 cell}
    {1x15 cell}    {1x15 cell}    {1x15 cell}    {1x15 cell}
    {1x15 cell}    {1x15 cell}    {1x15 cell}    {1x15 cell}
 


Ich würd da aber gern ausgeben was in den Zellen drin steht.

Grüße
krisztian

PS: Ok es ergibt sich folgendes Problem.
Ich hab jetzt diese Matrizen:

Code:
M1={'C1',0,'S1',0;
    'S1',0,'-C1',0;
    0,'1',0,'L1';
    0,0,0,'1'};

M2={'C2','-S2',0,'L2*C2';
    'S2','C2',0,'L2*S2';
    0,0,'1',0;
    0,0,0,'1'};


Leider funktioniert nun die Zeile:

Code:
if M1{S,1}~=0 && M2{1,K} ~= 0


nicht mehr.

Matlab vergleicht mir die Zelle 1,1 der M1 Matrix mit Null solange nur ein Buchstabe wie 'a' drin steht.
Sobal aber mehr als ein Char darinnen ist funktioniert es nicht mehr und es kommt die Fehlermeldung:

Zitat:
??? Operands to the || and && operators must be convertible to logical scalar values.

Error in ==> matrixmultiply at 20
if M1{S,1}~=0 && M2{1,K} ~= 0


Woran könnte das liegen?
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.