Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Matlab » Plotten von Daten
Autor
Universität/Hochschule J Plotten von Daten
NoNameTI-30x
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 20.05.2016
Mitteilungen: 502
  Themenstart: 2017-05-16

Folgende Aufgabe: Daten sollen eingelesen werden und in einer Funktion welche von m und s abhängt geplotet werden ( 1<=m<=7,1<=s<=3). Mein Code mit der dazugehörigen Funktion in Abhängigkeit von m und s ist: \sourceon Matlab for m = 1:7 for s = 1:3 l(m,s) = sum(log10(1./(pi*s*((1+x-m).^2)/s^2))) end end contour(l) \sourceoff Mein Problem ist jetzt allerdings, dass x (Vektor mit eingelesenen Daten) 500 Werte besitzt, m und s jedoch nur 7 bzw 3 und der plot dementsprechend ungenau ist. Wie kann ich also den Intervall von m und s so wählen, dass genau 500 Schritte zwischen 1 und 7 liegen? Danke schon mal für die Hilfe!


   Profil
Neodym342
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 31.10.2015
Mitteilungen: 145
  Beitrag No.1, eingetragen 2017-05-16

Hallo, falls ich dich richtig verstanden habe, kannst du einfach die Schrittweite ändern. \sourceon for m = 1.0:0.1:7 \sourceoff Hier also Schrittweite 0.1, du musst natürlich gucken welche Schrittweite du für genau 500 Elemente benötigst.


   Profil
NoNameTI-30x
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 20.05.2016
Mitteilungen: 502
  Beitrag No.2, vom Themenstarter, eingetragen 2017-05-17

Danke für die Antwort! Mein Problem ist es nicht die Schrittweite im engeren Sinne zu ändern, sondern sie so festzulegen, dass das Intervall 1:7 genau 500 Einträge hat. Das also automatisch jene Schrittweite gewählt wird, für die genau 500 gleich große Werte zur Verfügung stehen! Ich bilde mir ein, dass es dafür eine eigene Funktion gab!


   Profil
majoka
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.02.2014
Mitteilungen: 814
  Beitrag No.3, eingetragen 2017-05-17

Das geht mit \sourceon Matlab m = linspace(1,7,500); \sourceoff oder wie Neodym342 bereits gesagt mit \sourceon Matlab m = [1:(7-1)/(500-1):7]; \sourceoff


   Profil
NoNameTI-30x
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 20.05.2016
Mitteilungen: 502
  Beitrag No.4, vom Themenstarter, eingetragen 2017-05-17

Leider bekomme ich für \sourceon Matlab load('Data_Assignment6.mat'); n = length(x); for m = linspace(1,7,n); for s = linspace(1,3,n); l(m,s) = sum(log10(1./(pi*s*((1+x-m).^2)/s^2))); end end surf(1:7, 1:3, l') \sourceoff immer die Fehlermeldung "Subscript indices must either be real positive integers or logicals." Hab ich eure Tipps falsch verstanden oder wo liegt der Fehler?


   Profil
majoka
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.02.2014
Mitteilungen: 814
  Beitrag No.5, eingetragen 2017-05-17

Die Fehlermeldung ist doch eindeutig \sourceon Matlab clear all x = linspace(1,10,500); n = length(x); m = linspace(1,7,n); s = linspace(1,3,n); l = zeros(n,n); for i = 1:n for j = 1:n l(i,j) = sum(log10(1./(pi*s(j).*((1+x-m(i)).^2)./s(j).^2))); end end [M,S] = meshgrid(m,s); figure(1) contour(M,S,l) \sourceoff


   Profil
NoNameTI-30x
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 20.05.2016
Mitteilungen: 502
  Beitrag No.6, vom Themenstarter, eingetragen 2017-05-17

Tut mir leid ich finde die Fehlermeldung alles andere als logisch. Dein Code hilft mir leider nicht weiter weil mein Programm eigentlich fertig ist und ich nur den Plot anpassen wollte! Mir ist einfach total unklar warum ich in meinen Code nicht einfach mein Intervall anpassen kann. Selbst für \sourceon Matlab for m = 1:0.1:7 for s = 1:0.1:3 l(m,s) = sum(log(1./(pi*s*((1+x-m).^2)/s^2))); end end \sourceoff bekomme ich die Fehlermeldung "Subscript indices must either be real positive integers or logicals." was ich nicht verstehe weil es sich ja um reale positive integr Werte handelt!


   Profil
majoka
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.02.2014
Mitteilungen: 814
  Beitrag No.7, eingetragen 2017-05-18

l ein Array ist. Wenn Du \sourceon Matlab l(m,s) \sourceoff verwendest, müssen m und s ganzzahlig positiv sein.


   Profil
NoNameTI-30x
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 20.05.2016
Mitteilungen: 502
  Beitrag No.8, vom Themenstarter, eingetragen 2017-05-18

Ok verstehe! Danke es funktioniert jetzt!


   Profil
NoNameTI-30x hat die Antworten auf ihre/seine Frage gesehen.
Das Thema wurde von einem Senior oder Moderator abgehakt.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]