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

Matrixfunktion als einfache Variable darstellen

 

Tomi85

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2012, 13:57     Titel: Matrixfunktion als einfache Variable darstellen
  Antworten mit Zitat      
Hallo,
wie kann ich z.B. Is(T) als normale Variable wie z.B. a deklarieren, ohne dass matlab diese als Matrix ansieht


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 16.07.2012, 12:35     Titel: Re: Matrixfunktion als einfache Variable darstellen
  Antworten mit Zitat      
Hallo Tomi85,

Bisher ist die Frage nicht klar. Was soll den "Is(T)" sein?

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2012, 15:43     Titel:
  Antworten mit Zitat      
Tja T ist die Temperatur im Bereich 250K-400K.
Is(T) ist eine Formel z.B. Is(T)=a+5T.
Wenn ich diese Formel jetzt hinschreibe macht mir matlab eine Matrix daraus mit 400 Zahlen
Also berechnet mir matlab nicht die 150 Werte sondern 400Werte
???
Tja wenn ich mir das genauer anschaue nicht weiter schlimm, oder?
Die Werte ab 250K stimmen ja?
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 16.07.2012, 15:52     Titel:
  Antworten mit Zitat      
du müsstest mal ein einfaches beispiel posten was deinen code reproduziert.
momentan hört es sich so an als hättest du T als matrix definiert. dann ist logisch das du auch eine matrix zurück bekommst bei deiner linearen funktion
wenn du das nicht willst must du zb Is(T(1)) machen oder so. für genauere heilfe müsstest du mal den code posten der den fehler verursacht. aber nicht 20 seiten oder so. Smile
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: 16.07.2012, 22:19     Titel:
  Antworten mit Zitat      
Hallo Tomi85,
Wenn "Is" eine Funktion ist, schreibe es doch als Funktion:
Code:
function Value = Is(T)
a = 3.14;
Value = a + 5 * T;

Wenn dieses File als "Is.m" in einen Benutzer-definierten Ordner gespeichert wird, welcher im Matlab-Pfad enthalten ist (siehe "pathtool" oder "help addpath"), kann man im CommandWindow nun aufrufen:
Code:

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2012, 15:31     Titel: matlab variable
  Antworten mit Zitat      
Hm, einfacheres Beispiel:
T0 sei 300K.
Is(T0)=5fA.
Wenn ich das so in matlab schreibe erhalte ich für Is(T0) eine Matrix mit glaub ich 300 Werten. Von 0 - 299 ist Is 0, bei 300 5fA. Matlab macht aus Is(T0) eine Matrix mit 300 Werten, ich möchte aber für Is(T0) eine einfache Variable erhalten mit dem Wert 5fA.
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 17.07.2012, 21:18     Titel:
  Antworten mit Zitat      
5fa siht nicht aus wie eine zahl. genau wie 300K. ohne das du ein beispiel in lauffähigem code postest was den fehler verursacht wird dir hir niemand helfen können. auf die wahrscheinlich bei dir vorliegenden fehler wurde hir bereits hingewiesen. du soltlest vieleicht mal das anfänger tutorial von matlab durchgehen. oder dir hir in anderen beiträgen angucken wie man sein problem gut beschreibt.
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: 17.07.2012, 21:18     Titel: Re: matlab variable
  Antworten mit Zitat      
Hallo Tomi85,

Zitat:
T0 sei 300K.
Is(T0)=5fA.

Das ist keine valide Matlab Syntax. Was soll "300K" sein? Ein String? Und was ist "5fA"?!

Ich vermute, Du möchtest ein assoziatives Array erstellen, bei dem bestimmte Werte frei wählbaren Schlüsseln zugeordnet werden können. Das läßt sich zwar mit einem Struct-Array machen, aber ich bezweifele, dass dies helfen wird, Deine eigentliche Aufgabe zu lösen.
Matlab ist für die Bearbeitung von Matrizen optimiert (deswegen ja auch der Name). Man kann damit viele Probleme sehr gut lösen. Wenn Du Deine Vorstellung der Lösung eines Problems nicht gut in dieser Sprache ausdrücken kannst, wähle entweder eine andere Sprache, oder sortiere Deine Ideen noch mal neu.

Bemerkung: "X(300)" setzt die Werte von X(1) bis X(299) auf 0, nicht von X(0), da Matlab 1-basierte Indices verwendet.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.07.2012, 15:30     Titel:
  Antworten mit Zitat      
Tja das fA und K hab ich beim eingeben in matlab ja weggelassen...

K bedeutet Kelvin
fa femtoAmpere
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.08.2012, 18:07     Titel:
  Antworten mit Zitat      
Also noch ein Versuch..
matlab code:
a=3

a =

3

>> I(a)=5

I =

0 0 5

Also für I(a) erhalte ich eine Matrix mit 3 Elementen, ich möchte für I(a) aber nur 5 erhalten...
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.08.2012, 21:57     Titel:
  Antworten mit Zitat      
Hallo,

Die Frage bleibt unklar. Du möchtest etwas, was nicht nach Matlab aussieht, falls ich es richtig verstehe.

Zitat:
Code:

>> a=3
a =
     3

>> I(a)=5

I =
     0     0     5
 

Also für I(a) erhalte ich eine Matrix mit 3 Elementen, ich möchte für I(a) aber nur 5 erhalten...

Nein. Für "I(a)" erhälst Du "5". Nur für "I" erhälst Du 3 Elemente.

Dies ist aber so grundlegend, dass ich empfehele, die "Getting Started"-Kapitel der Dokumentation durchzulesen. Möglicherweise stellst Du dann fest, dass Matlab für Deine Probleme nicht geeignet ist. Dann musst Du entweder eine andere programmiersprache wählen, oder die Probleme geeignet umformulieren. Letzteres ist die eigentliche Arbeit beim Programmieren - in jeder Sprache - und Du wirst nicht drum herum kommen.

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 - 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.