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

Error using ==> +- Matrix dimensions must agree.

 

Simaticus
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 21.07.14
Wohnort: Straelen
Version: 6.5.0.196271
     Beitrag Verfasst am: 21.07.2014, 15:28     Titel: Error using ==> +- Matrix dimensions must agree.
  Antworten mit Zitat      
Hallo zusammen und HILFE,

ich bin neu im Forum, und auch in der Matlabwelt.

Hatte die Frage versehentlich bereits unter GUi's gepostet Sorry! Sad

HAbe von einem Kollegen ein SigLab Messsytem übernommen und lese die Messwerte mit MatLab aus und verarbeite sie. Ich greife dabei auf bestehende Programme meines Vorgängers zurück und änder Sie entsprechend ab. Bis jetzt habe ich es immer hinbekommen, doch nun stehe ich vor einem Rätsel. Habe den Programmteil auch für andere Aufgaben benutz, und er hat immer funktioniert. Nun funktioniert er nur sporadisch abhängig vom Wert: f_select.

Der Code ist relativ lang ich hoffe der kurze Auszug reicht aus um eine Aussage zu treffen:

Die Wertein der Variablen CH1_f sind die bereits aufgearbeiteten Messwerte.

Code:
%Auszug aus dem Program
pause;                          
f_select= input  
L= find(f_scale == f_select);
quo=1; % hiermit skalliere ich
A1= 1/quo *abs(CH1_f(L));
...
Amplituden = [A1;A2;A3;A4;A5;A6;A7;A8;A9;A10;A11;A12];

phi1= angle(CH1_f(L));
...
Phase = [phi1;phi2;phi3;phi4;phi5;phi6;phi7;phi8;phi9;phi10;phi11;phi12];
...
tt= 0:0.0001:1/f_select;                    
CH1_H = A1*cos(2*pi*f_select*tt + phi1);    % Kanal 1 horizontal
...

In dieser Zeile Bricht das Programm dann abhängig von dem eingegebenen Wert ab oder läuft durch.

Fehlermeldung lautet dann:
??? Error using ==> +- Matrix dimensions must agree.

Habe auch schon punktweise operation ausprobiert, hab aber keinen Erfolg gehabt.

Ich wäre für Hilfe sehr sehr dankbar.
Hoffe man kann das Problem nachvollziehen. Wie gesagt ich arbeite mich gerade erst in die Matlabprogrammierung ein.

In der Anlage habe ich den ganzen Code eingefügt.

Dankeschön schon mal....

Orbit_Darstellung_ohne_Analogsignale_Varel.m
 Beschreibung:

Download
 Dateiname:  Orbit_Darstellung_ohne_Analogsignale_Varel.m
 Dateigröße:  19.16 KB
 Heruntergeladen:  341 mal
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 21.07.2014, 15:43     Titel:
  Antworten mit Zitat      
Ohne die Daten kann man nur raten, aber am Besten in der Zeile vorher die Größe alle Variablen abfragen, dann wird es schon klar:

Code:

whos A1 f_select tt phi1
CH1_H = A1*cos(2*pi*f_select*tt + phi1);
 


Das muss halt alles zusammen passen. Vielleicht ist es bei f_select*tt und es muss eigentlich f_select.*tt heissen?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Simaticus
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 21.07.14
Wohnort: Straelen
Version: 6.5.0.196271
     Beitrag Verfasst am: 22.07.2014, 07:37     Titel:
  Antworten mit Zitat      
Hallo Andreas,

danke für den Tip mit dem Whos-Befehl.
Der Wert muss genau einen Messpunkt treffen bis auf die Kommastelle genau, ansonsten hat die MAtrix eine andere Dimension und das Programm giebt auf.
Konnte man mit dem Whos Befehl sehr schön sehen.
Kannte ich nicht; SUPER wieder was gelernt! Very Happy

Besten Dank
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 22.07.2014, 09:59     Titel:
  Antworten mit Zitat      
Gern geschehen. Dann liegt das Übel eigentlich in der "f_scale == f_select" Abfrage? Das ist nich immer so schlau wegen genau dieser numerischen Effekte. Manchmal kann man solche Abfragen mit einem Toleranzbereich versehen, manchmal ist es schlauer gleich einen Integer Datentyp zu nehmen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Simaticus
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 21.07.14
Wohnort: Straelen
Version: 6.5.0.196271
     Beitrag Verfasst am: 24.07.2014, 13:04     Titel:
  Antworten mit Zitat      
Danke noch mal für den den Tipp,

werd mal versuchen, dass mit Toleranzen zu versehen. Vielleicht bekomme ich es ja hin Wink

Besten Gruß
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.