<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> -->
<rss version="0.91">

<channel>
    <title>Mein MATLAB Forum - goMatlab.de</title>
    <link>http://www.gomatlab.de/index.php</link>
	<description>goMatlab.de - Deutschsprachiges Forum für die Benutzung der Software MATLAB / Simulink. Hilfe bei Bedienungsfragen oder bei der Umsetzung technischer Probleme.</description>
	<language>de</language>
	<image>
		<title>Mein MATLAB Forum - goMatlab.de</title>
		<link>http://www.gomatlab.de/index.php</link>
		<url>http://www.gomatlab.de/templates/vSpiralFull/images/_header_logo.gif</url>
	</image>

<item>
    <title>Hat schon mal ein Octave Programmierer die Software genutzt?</title>
    <replys>1</replys>
    <link>http://www.gomatlab.de/viewtopic.php?p=204780#204780</link>
    <pubDate>Thu, 26 Feb 2026 14:44:26 +0100</pubDate>
    <description>:cry:</description>
</item>

<item>
    <title>Arbeiten mit Funktionen</title>
    <replys>1</replys>
    <link>http://www.gomatlab.de/viewtopic.php?p=204777#204777</link>
    <pubDate>Fri, 09 Jan 2026 05:56:58 +0100</pubDate>
    <description>Hallo,

wenn ich die for-Schleife in die function packe funktioniert es, auch wenn die length(Zeit) nur 1 ist.

Gruß Andreas</description>
</item>

<item>
    <title>Aktualisierung einer Legende</title>
    <replys>0</replys>
    <link>http://www.gomatlab.de/viewtopic.php?p=204774#204774</link>
    <pubDate>Mon, 15 Dec 2025 11:14:32 +0100</pubDate>
    <description>Bei jedem Druck auf einen Button wird für eine wählbaren Parameter h in ein Koordinatensystem eine Kurve gezeichnet. Mein Problem liegt in der Darstellung der Legende.
Dazu habe ich 3 globale Variable:
hs: Liste der h-Werte
leg_handles: Handle auf die gezeichnete Linie
leg_Texts: die Texte des jeweiligen Legendeneintrags

Der Callback für den Button sieht nach dem Einlesen des jeweiligen h-Wertes so aus:

hs=&amp;#91;hs,h&amp;#93;; 
counts=size&amp;#40;hs,2&amp;#41;
leg_handles&amp;#123;counts&amp;#125;=hLine;
leg_Texts&amp;#123;counts&amp;#125;=sprintf&amp;#40;&amp;quot;Euler,h=%f&amp;quot;,h&amp;#41;;
legend&amp;#40;mainDlg.UIAxes,&amp;#91;leg_handles&amp;#123;&amp;#58;&amp;#125;&amp;#93;,leg_Texts&amp;#123;&amp;#58;&amp;#125;&amp;#41;;

Der erste Eintrag ist jeweils wie gewünscht. Ab dem zweiten ergeben sich aber riesige data-Zeilen.
Was mache ich falsch</description>
</item>

<item>
    <title>Matrizen mit leeren Feldern?</title>
    <replys>1</replys>
    <link>http://www.gomatlab.de/viewtopic.php?p=204745#204745</link>
    <pubDate>Mon, 09 Dec 2024 11:12:50 +0100</pubDate>
    <description>Hallo,

du kannst das auch selbst in MATLAB Online testen: für bis zu 20 Stunden im Monat ist eine kostenfreie Nutzung von MATLAB Online möglich. Benötigt wird nur ein (ebenfalls kostenfreier) MathWorks Account.
https://www.mathworks.com/products/matlab-online/matlab-online-versions.html

Wenn du mehr mit Übertragungsfunktionen möchtest, bist du vielleicht mit MATLAB besser bedient als mit Octave? 
Ich arbeite bei MathWorks. Bei Interesse schicke mir gerne eine PN, wo du studierst oder arbeitest und ich kann schauen, welche Möglichkeiten es für dich gibt.

Grüße,
Harald</description>
</item>

<item>
    <title>Steigung im Bode-Diagramm</title>
    <replys>3</replys>
    <link>http://www.gomatlab.de/viewtopic.php?p=204743#204743</link>
    <pubDate>Tue, 26 Nov 2024 07:50:03 +0100</pubDate>
    <description>Hallo,

ich weiß leider immer noch nicht, wie ich mit einer Übertragungsfunktion und einem Output den Input errechnen kann.

Es gibt im Octave-Paket „Control“ zwar die Funktion inv(), die eine Übertragungsfunktion invertiert. Die vertauscht Zähler und Nenner, macht also aus Polen Nullstellen und umgekehrt. Mit dieser invertierten Übertragungsfunktion lässt sich aber nicht mit lsim() weiterrechnen. Lsim() bricht mit einer Fehlermeldung ab, weil:
     LTI model. System must be proper, i.e. it must not have more zeros than poles.

Also vorwärts geht es:
sys = zpk([0 -zero1],[-pol1 -pol2],1); # bilde Übertragungsfunktion aus Polen und 
                                                          Nullstellen
[mag, pha] = bode (sys,freq); # berechne Magnitude und Phase (Frequenzbereich)
fout = lsim(sys,fin,tmax); # berechne Output aus Input (Zeitbereich)

Auch das noch:
isys=inv(sys); # Übertragungsfunktion invertieren

Aber das nicht mehr:
fin=lsim(isys,fout,tmax); # berechne Input aus Output (Zeitbereich)

Es gibt zwar ein Octave-Paket „symbolic“, das neben der Laplace-Transformation auch die inverse Laplace-Transformation beherrscht, das aber nur symbolisch und eben leider nicht für diskrete Funktionen.

Hat Jemand einen Tipp für mich, wie ich mit der Lösung meines Problems weiter komme?

Gruß Andreas</description>
</item>

<item>
    <title>Einlesen einer Datei</title>
    <replys>1</replys>
    <link>http://www.gomatlab.de/viewtopic.php?p=204435#204435</link>
    <pubDate>Mon, 11 Sep 2023 16:41:44 +0200</pubDate>
    <description>Hallo,

nun hab ich es selbst geschafft.

Dummy = fscanf(fid, &amp;quot;%f,%u&amp;quot;,[1,2])

Den x- und den y-Wert hol ich mir dann aus Dummy raus.

Gruß Andreas</description>
</item>

<item>
    <title>Ein paar Fragen</title>
    <replys>1</replys>
    <link>http://www.gomatlab.de/viewtopic.php?p=204428#204428</link>
    <pubDate>Fri, 01 Sep 2023 12:13:40 +0200</pubDate>
    <description>Hallo Andreas

1. Definition einer Variablen als int
&amp;gt;&amp;gt; i=int32(123)
&amp;gt;&amp;gt; Fs=192000
Ich habe es immer als großen Vorteil von Matlab/Octave empfunden, dass ich die Variablen nicht deklarieren muss.
Fs ist ja auch integer, wird aber bei dieser Eingabe als double behandelt.

2. Definition einer Variablen als Matrix 
Wenn das Ergebnis einer Berechnung eine Matrix ist wird es schon einen Grund geben.
Umwandlung von Matrix in Vektor:
Es ist für weitere Berechnungen oft nicht egal, ob es ein Zeilen- oder Spaltenvektor ist.
M = rand&amp;#40;5,6&amp;#41;;
V1 = M&amp;#40;&amp;#58;&amp;#41;

V2 = M&amp;#40;&amp;#58;&amp;#41;'


3. Ermittlung der Größe einer Matrix
&amp;#91;nrow, ncol&amp;#93; = size&amp;#40;M&amp;#41;

Für Vektoren auch length &amp;#40;V1&amp;#41;


4. Ableitung mit Hilfe von diff() 
Bei Messdaten gibt es Probleme mit dem Rauschen.
Eine Möglichkeit ist die vorherige Glättung z.B. durch Savitzky-Golay-Filter über mehrere Datenpunkte:
https://octave.sourceforge.io/signal/function/sgolayfilt.html
https://octave.sourceforge.io/signal/function/sgolay.html

Das SG-Filter kann auch modifiziert werden für die direkte Bildung der Ableitung über mehrere verrauschte Datenpunkte.


5. FFT
Die Matlab-Beispiele sollten auch unter Octave laufen.
https://docs.octave.org/v4.2.1/Signal-Processing.html

https://de.mathworks.com/discovery/fft.html

https://de.mathworks.com/help/matlab/math/fourier-transforms.html

https://de.mathworks.com/help/matlab/ref/fft.html?w.m

Gruss
Busmaster</description>
</item>

<item>
    <title>Wendepunkt Kantenverlauf eines Striches im Bild</title>
    <replys>0</replys>
    <link>http://www.gomatlab.de/viewtopic.php?p=204354#204354</link>
    <pubDate>Wed, 26 Jul 2023 19:05:03 +0200</pubDate>
    <description>Hallo liebe Community,

ich bin leider ein komplett blutiger Anfängern und hatte noch nie Berührungspunkte mit Matlab oder Octave. 

Ich stehe vor folgendem Problem. Ich habe mit einer Bildverarbeitung einen Kante eines Chromstriches auf Glas aufgenommen. Ich hätte nun gern aus diesem Bild die Information wo der Wendepunkt des Grauwertverlaufs dieses Striches sich befindet. 

Könnt ihr mir weiterhelfen bzw. benötigt ihr noch mehr Informationen?

Viele Grüße

seven</description>
</item>

<item>
    <title>COM Automatisierung Zeichenprogramm</title>
    <replys>1</replys>
    <link>http://www.gomatlab.de/viewtopic.php?p=204334#204334</link>
    <pubDate>Mon, 10 Jul 2023 21:27:20 +0200</pubDate>
    <description>Ich nochmal,

Mit COM-Automatisierung beschäftigen sich hier scheinbar nicht so viele. Ist die COM-Schnittstelle noch nicht ausgreift? 

Die folgenden Befehle kann ich absetzen und sie funktionieren:

pkg load windows

DcDoc = actxserver(&amp;quot;DesignCAD.DCD-Document&amp;quot;); #Zugriff auf bestehende Sitzung
DcDoc.BringToTop();
DcPts = DcDoc.CmdPoints();
DcLine = DcDoc.Line();
DcPlane = DcDoc.Plane();
DcCurve = DcDoc.Curve();
DcLayers = DcDoc.Layers();

DcLayers.Item(2).Activate(); # Der Layer 2 wird aktiviert und im nächsten Schritt beschriftet
DcLayers.Item(2).Name = &amp;quot;Sinus Octave&amp;quot;;
DcCurve.DrawType = 0;

DcPts.SetCommandPoint(0,0,0); #Punkt bei 0,0,0 setzen
DcPts.SetCommandPoint(20,10,0); #Zweiter Punkt bei 20,10,0
DcCurve.Draw(); #Kurve bzw. Linie zwischen den beiden Punkten zeichnen


MsPkt = DcPts.GetUserPoint(); #Fangen des Startpunktes mit der Maus

Das GetUserPoint() soll bewirken, dass man mit der Maus auf die Zeichenfläche klickt und einen Punkt (x,y,z) erhält. Aber das funktioniert nicht.

Kann man in Octave Zeigervariablen übergeben?

Bei Freepascal übergebe ich einfach x,y,z an DcPts.GetUserPoint(x,y,z);
Danach auf die Zeichenfläche geklickt und in den Variablen stehen die Koordinaten.

Bei Python wird die Funktion so aufgerufen:

Koordinaten = DcPts.GetUserPoint()

und über Index Koordinaten[0] usw. kann der Wert genutzt werden.

Wie geht es bei Oktave? Weiß das jemand?

Vielen Dank nochmal

Viele Grüße

Gast01</description>
</item>

<item>
    <title>legend() für mehrere boxplot()</title>
    <replys>0</replys>
    <link>http://www.gomatlab.de/viewtopic.php?p=204038#204038</link>
    <pubDate>Sun, 12 Feb 2023 10:05:51 +0100</pubDate>
    <description>Hallo!

Kurz vorab: Ich habe Octave auf zwei Rechnern laufen, einmal Windows und einmal Linux. Das Verhalten ist teilweise unterschiedlich. Da ich für meine Arbeit Windows benutze bezieht sich die Frage darauf, ich kann hier gerade aber nur auf meinen Linuxrechner zugreifen.

Es geht um boxplot().

Ich möchte zwei Boxen in einem Plot. Und eine Legende mit zwei Einträgen, je einen pro Box.

Ich erhalte aber eine Legende mit zwei Einträgen, wobei der erste für die erste Box und der zweite für das (1.?) Quartil der ersten Box steht. Wie greife ich z.B. mit legend() auf die zweite Box zu?

In Windows (gerade nicht verfügbar) wird in der Legende der erste Eintrag als Box angezeigt, der zweite als Linie. In Linux sind alle Einträge Linien.

Ich habe zum verdeutlichen mal ein Beispiel mit einem dritten Plot, nämlich einer gestrichelten Linie hinzugefügt. Der dritte Eintrag ist ebenfalls eine durchgezogene Linie.

Ich denke, dass legend() bei boxplots die sieben Werte erhält, die eine box definieren (Quartil, Median, etc. pp.). Also müsste ich für das Auftauchen des Eintrags der zweiten Box dann acht Einträge in die Legende schreiben.

Wie bekomme ich also lediglich zwei boxen, und natürlich in der jeweils ausgewählten (hier im Beispiel noch default) Farbe?


data1 = randn&amp;#40;100, 1&amp;#41;;
data2 = randn&amp;#40;100, 1&amp;#41; + 3;

figure;

b=boxplot&amp;#40;&amp;#123;data1, data2&amp;#125;&amp;#41;
hold on;
p1=plot&amp;#40;&amp;#91;0 2.5&amp;#93;,&amp;#91;2 2&amp;#93;,'--'&amp;#41;
legend&amp;#40;&amp;#123;'data1','data2','line'&amp;#125;&amp;#41;

</description>
</item>

</channel>

</rss>