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

Plot Matrix

 

tomc77
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 20.04.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 20.04.2014, 21:10     Titel: Plot Matrix
  Antworten mit Zitat      
Hallo zusammen,

ich arbeite erst seit kuzem mit Matlab und hab jetzt das Problem das ich hier nicht weiter komme.
Vll kann mir ja hier jemand weiterhelfen.
Ich will den Plot von X und y bekomme aber die Fehlermeldung:
??? Error using ==> mldivide
Matrix dimensions must agree.


Error in ==> Untitled5 at 21
d = 10*(xl/(sqrt((37^2)+((xl-(1/xc)^2)))))


Code:

clear all
close all
clc

X =[45:0.1:55]
xl = [2*pi*X*0.2]
xc = [2*pi*X*0.000035]
r = (37^2)
for i=X
   y = 10*(xl./(sqrt((37^2)+((xl-(1./xc)^2)))))
 
end
 plot  (X,y)
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.04.2014, 21:47     Titel:
  Antworten mit Zitat      
Hallo,

zunächst mal: die Zeile, die den Fehler produziert, kommt im Code so gar nicht vor. Was stimmt denn nun?

Im Code wird y in jeder Iteration überschrieben, was wohl nicht so gedacht ist.

Zudem wird i in der Schleife nicht verwendet.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
tomc77
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 20.04.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 20.04.2014, 22:36     Titel:
  Antworten mit Zitat      
Hallo,
hatte die falsche Fehlermeldung copiert
hier die richtige
??? Error using ==> mpower
Inputs must be a scalar and a square matrix.

Error in ==> Untitled5 at 14
d = 10*(xl./(sqrt((37^2)+((xl-(1./xc)^2)))))

wenn ich jetzt das X durch i ersetze bekomme ich zwar von jedem Schleifendurchlauf ein Ergebnis für d aber im plot steht nur das letzte
was muss ich ändern damit ich eine ganze kurve also alle Ergebnisse von d im plot bekomme?

neuer Code
Code:

X =[45:0.1:55]

for i=X

    xl = [2*pi*i*0.2]
xc = [2*pi*i*0.000035]
r = (37^2)
   d = 10*(xl./(sqrt((37^2)+((xl-(1./xc)^2)))))
 
end
 plot  (i,d)
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2014, 08:04     Titel:
  Antworten mit Zitat      
Habe jetzt nicht ganz genau drauf geschaut, aber es müsste klappen, wenn Du das i wieder durch das X ersetzt und die Schleife einfach weglässt. Dann rechnet Matlab Dir direkt den gesamten Vektor aus.

Das Problem in Deinem Code ist jetzt, dass Du d immer wieder überschreibst.

Markus
Private Nachricht senden Benutzer-Profile anzeigen
 
tomc77
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 20.04.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 21.04.2014, 09:43     Titel:
  Antworten mit Zitat      
Hallo,

das hab ich schon probiert aber dann kommt die Fehlermeldung:

??? Error using ==> mpower
Inputs must be a scalar and a square matrix.

Error in ==> Untitled5 at 13
d = 10*(xl./(sqrt((37^2)+((xl-(1./xc)^2)))))

weiß nicht mehr weiter.

Code:

clear all
close all
clc

X =[45:0.1:55]

%for i=X

    xl = [2*pi*X*0.2]
xc = [2*pi*X*0.000035]
r = (37^2)
   d = 10*(xl./(sqrt((37^2)+((xl-(1./xc)^2)))))
 
%end
 plot  (i,d)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 21.04.2014, 10:22     Titel:
  Antworten mit Zitat      
Hallo tomc77,

Zitat:
??? Error using ==> mpower
Inputs must be a scalar and a square matrix.

Error in ==> Untitled5 at 13
d = 10*(xl./(sqrt((37^2)+((xl-(1./xc)^2)))))

weiß nicht mehr weiter.

Was sagt Dir die Fehlermeldung denn? Weißt Du, wo MPOWER aufgerufen wird? Wenn nicht, kannst Du die Zeile in mehrere Teile spalten, bis Du die Quelle des Problems findest.
Wenn xc ein Vektor ist, ist ((1 ./ xc)^2) nicht lösbar. Meinst Du statt dessen ".^" ?

Wenn Du auf der Suche nach Fehlern bist, ist "clear all" eine schlechte Idee, weil es auch alle Debugger-Breakpoints löscht. Der Debugger ist aber gerade das Mittel der Wahl, wenn es darum einen Fehler zu lokalisieren.
Zitat:
Code:
X =[45:0.1:55]

Hier sind die eckigen Klammern übrigens überflüssig. Sie rauben sogar etwas Rechenzeit, allerdings bezweifele ich, dass die paar Nanosekunden ernsthaft auffallen.
Zitat:
Code:
xl = [2*pi*X*0.2]

Hier sind die eckigen Klammern sogar irreführen. Hier werden keine Elemente zu einem Array zusammengefasst.

Gruß, Jan
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 - 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.