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

Tabelle im Editor darstellen; Werte interpolieren

 

David79
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 31.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2011, 20:02     Titel: Tabelle im Editor darstellen; Werte interpolieren
  Antworten mit Zitat      
Hallo,
ich habe gleich zwei Fragen zur Programmierung im Matlab Editor und hoffe, dass Ihr mit weiterhelfen könnt! Bislang konnte ich noch keine Lösung finden...

Folgendes Problem:

ich versuche im Matlab Editor eine Tabelle abzubilden die aus 2 Spalten und 10 Zeilen besteht.

Sie sieht wie folgt aus:

b.............a(b)
-------------------
0,00.......1,0000
0,05.......0,91388
0,10.......0,83274
" "
" "
0,45.......0,39883

Frage 1: Kann man eine solche Tabelle im Matlab Editor abbilden? Wenn ja, wie muss man programmieren?

Im zweiten Schritt muss die Formel:

b=x/(2*sqrt(a*t))

berechnet werden. Die Parameter a und t wurden initialisiert und bleiben konstant. Der Parameter x variiert zwischen 1 und 10, Schrittweite=1

x= linespace (1,10,10)

Demnach werden für b 10 Werte berechnet.

Schritt 3:

Im letzten Schritt muss dem b-Wert ein a-Wert aus der oben definierten Tabelle zugewiesen und ausgeworfen werden werden.

a(b)=b

Wie muss man programmieren, wenn man die a-Ergebnisse in einem Diagramm darstellen möchte? Kann man den Wert a(b) interpolieren, falls dieser zwischen den vorgegebenen Werten liegt?

Es wäre super, wenn Ihr mir weiterhelfen könntet. ich bekomme es einfach nicht hin, wenn mehrere Werte im Spiel sind...

Vielen Dank für Eure Hilfe!!!
_Peter_: Bitte keine Doppelpostings! Danke.
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: 08.09.2011, 13:04     Titel: Re: Tabelle im Editor darstellen; Werte interpolieren
  Antworten mit Zitat      
Hallo David79,

Bist Du inzwischen weitergekommen oder hat sich das Problem erledigt?

Zumindest dfies ist in Matlab nicht möglich: "a(b)=b". Im Ausdruck "a(b)" muss der Index b immer ganzzahlig positiv sein.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.09.2011, 14:11     Titel:
  Antworten mit Zitat      
Hallo David79,

Wenn ich dich richtig verstehe, willst du einfach nur die Tabelle abspeichern?
Tabellen können in Matlab als Array eingegeben werden:
Code:

name = [ 0  1; 0.05  0.91288; 0.1 0.83274; ... ; 0.45 0.39883 ]  ;
 


Soll ein Vektor punktweise durch einen Wert geteilt werden, so wird in Matlab ein Punkt vor das Rechenzeichen gesetzt:
b=x./(2*sqrt(a*t))

statt linspace klappt auch:
Code:

x= 1:10;
 


falls du mit Diagramm eine Funktion meinst, hilft der plot Befehl.

Ich hoffe, die Anmerkungen helfen dir. Du könntest auch die Matlabhilfe zu Arrays anschauen.

Viele Grüße
Nighty
 
David79
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 31.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.09.2011, 18:39     Titel:
  Antworten mit Zitat      
Hallo Jan, Nighty,

vielen Dank für Eure Rückmeldung. Ja, ich bin weitergekommen und habe eine Lösung gefunden. Die Tabelle habe ich wie Nighty beschrieben über ein Array eingegeben.

Code:
name = [ 0  1; 0.05  0.91288; 0.1 0.83274; ... ; 0.45 0.39883 ]  ;


Die Werte der zweiten Spalte ebenfalls über ein Array.

Die Anschließende Interpolation wurde mit

Code:


ausgeführt. Vielen Dank für Eure Hilfe!

Gruß, David
Private Nachricht senden Benutzer-Profile anzeigen
 
David79
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 31.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.09.2011, 19:08     Titel:
  Antworten mit Zitat      
Nichtsdestotrotz hat sich eine weitere Frage aufgetan.

In die Formel
Code:
b=x/(2*sqrt(a*t))
sollen 10 Werte zwischen 1 und 10 liegend eingesetzt, berechnet und ausgegeben werden.

Ich habe versucht das Problem wie folgt zu lösen:

Code:
x= 1:10:10;
b=x/(2*sqrt(a*t))


die berechneten Werte werden mir leider nicht angezeigt, Fehlermeldung / es wird nur ein Wert berechnet und ausgeworfen.

Die 10 Werte sollen in eine weitere Formel übergeben, berechnet und grafisch dargestellt werden. Die Grafik habe ich hinbekommen, allerdings nur mit einem Wert.

Code:


Was mache ich falsch? Hab Ihr vielleicht noch mal einen kleinen Tipp?

Gruß, David
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDread
Forum-Century

Forum-Century


Beiträge: 212
Anmeldedatum: 11.05.11
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 09.09.2011, 10:18     Titel:
  Antworten mit Zitat      
Hallo David,
sind a und t ebenfalls vektoren?

Code:

x= 1:10:10;
b=x./(2*sqrt(a.*t))


Dann musst du nämlich noch Punkte vor * und / machen, um eine elementweise Multiplikation/Division zu erhalten

Gruß Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 09.09.2011, 14:02     Titel:
  Antworten mit Zitat      
David79 hat Folgendes geschrieben:
Code:
x= 1:10:10;
b=x/(2*sqrt(a*t))


die berechneten Werte werden mir leider nicht angezeigt, Fehlermeldung / es wird nur ein Wert berechnet und ausgeworfen.


Schau dir mal im Command Window genau an was du für "X=1:10:10" bekommst.
Du meinst bestimmt:
Code:


--------------------------------------------
p.s.: Hättest du in deinem anderen Thread mal geschaut, hättest du dies bereits von Jan erfahren:
Jan S hat Folgendes geschrieben:

Hallo David79,

Dann schau Dir doch mal an, was dies ergibt:
Code: x = 1:10:10

Ich nehme an, Du meinst:
Code: x = 1:10

Hilft das erst mal weiter?

Gruß, Jan

Deshalb sind Doppelposting nicht erwünscht.
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
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.