|
|
Löschen des i-ten Eintrags des Vektors x mit einer Funktion |
|
Mysii |

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 14.02.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.02.2014, 20:03
Titel: Löschen des i-ten Eintrags des Vektors x mit einer Funktion
|
 |
Hallo,
versuche in letzter Zeit mich mit MATLAB anzufreunden und muss zugeben, dass ich ein Neuling bin. Deshalb benötige ich jede Hilfe, um mich in das Programm einzusteigern.
Mein Problem jetzt ist folgendes;
Ich versuche einen Eintrag des Vektors x mit einer Funktion zu löschen.
Ich definiere erst den Vektor x=[4 7 9 3 5]
Normal würde ich ja eingeben: x(2)=[]
So wäre die 7 weg wenn ich mich nicht täusche.
Nun das ganze als eine Funktion wiedergeben dürfte ja nicht schwer sein. Jedoch bekomme ich dauernd eine Fehlermeldung.
function z=Beispiel (x,i)
x(i)=[];
z=x
end
Das wäre doch die einfachste Variante wenn ich mich nicht täusche. Nun möchte ich ja den 2. Eintrag also die 7 löschen. Wie und wo muss ich die 2 (2. Eintrag) und die 7 eingeben?
Vielen Dank
|
|
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.02.2014, 20:41
Titel: Re: Löschen des i-ten Eintrags des Vektors x mit einer Funk
|
 |
Mysii hat Folgendes geschrieben: |
Nun das ganze als eine Funktion wiedergeben dürfte ja nicht schwer sein. Jedoch bekomme ich dauernd eine Fehlermeldung.
|
Was sagt die Meldung denn? Meistens gibt das, was dort steht einen Hinweis darauf, was nicht passt...
Mysii hat Folgendes geschrieben: |
function z=Beispiel (x,i)
x(i)=[];
z=x
end
|
Ich halte es für ungeschickt, i und j in Matlab zu verwenden, da diese jeweils als die imaginäre Einheit (i*i = -1) interpretiert werden. Das kann zu wunderlichen Fehlern führen, wenn man nicht aufpasst.
Markus
|
|
|
Mysii |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 14.02.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.02.2014, 20:49
Titel: Re: Löschen des i-ten Eintrags des Vektors x mit einer Funk
|
 |
|
 |
|
Epfi hat Folgendes geschrieben: |
Was sagt die Meldung denn? Meistens gibt das, was dort steht einen Hinweis darauf, was nicht passt...
Ich halte es für ungeschickt, i und j in Matlab zu verwenden, da diese jeweils als die imaginäre Einheit (i*i = -1) interpretiert werden. Das kann zu wunderlichen Fehlern führen, wenn man nicht aufpasst.
Markus |
Also wie gesagt, bin ziemlich neu und das mit i und j wurde uns so beigebracht. Deshalb habe ich das einfach so übernommen.
Also ich weiß in dem Fall nicht, wo für das (x,i) steht
wenn ich jetzt die Funktion habe
In der Kommandozeile würde ich ja eingeben x(2)=[] (das klappt, will aber ja ne Funktion)
Deshalb habe ich das ganze mal so eingegeben:
Fehlermeldung:
Error: File: Beispiel.m Line:1 Column: 24
Unexpected MATLAB expression.
Das x muss doch für den Vektor x stehen und das i für den Eintrag. Was soll denn da falsch sein?
[EDITED, Jan, Bitte Code-Umgebung benutzen - Danke!]
|
|
|
Mysii |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 14.02.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.02.2014, 23:02
Titel:
|
 |
Kann mir denn keiner helfen?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.02.2014, 23:16
Titel:
|
 |
Hallo,
Definition der Funktion in einer eigenen Datei:
Aufruf dann z.B. mit
Grüße,
Harald
P.S.: etwas mehr Geduld solltest du schon haben, bevor du dein Thema bumpst. Der Forum-Knigge schlägt 24 Stunden vor.
|
|
|
Mysii |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 14.02.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.02.2014, 16:54
Titel:
|
 |
Hallo und vielen Dank für die Antwort.
Hat soweit geklappt.
Mein Problem jedoch ist, den Befehl über das Editor-Fenster auszuführen mir 'Run'.
Bevor ich Editor in MATLAB öffne, definiere ich den Vektor x in der Kommandozeile mit x=[4 7 9 3 5].
Folglich öffne ich Editor und definiere da die Funktion:
Ich müsste also jetzt für i etwas einsetzen, in dem Fall die 2, um die 7 zu löschen. Wenn man dann auf Run klickt und diese Funktion abspeichert unter Beispiel.m, sollte doch die 7 verschwinden und das selbe passieren wie mit x2=Beispiel(x,2)
So müsste ich es doch im Editor-Fenster eingeben oder nicht?
Dann auf Run klicken. Ich kriege aber ne Fehlermeldung, siehe oben.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.02.2014, 17:43
Titel:
|
 |
Hallo,
Zitat: |
function z=Beispiel (x,2) |
so eine Funktionsdefinition ist nicht sinnvoll.
In den runden Klammern stehen die Eingabevariablen, und 2 ist nunmal keine Variable.
Im Editor ist übrigens auch das Code Analyzer - Tool integriert, das dich über orange oder rote Markierungen auf Probleme hinweist.
Grüße,
Harald
|
|
|
Mysii |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 14.02.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.02.2014, 17:56
Titel:
|
 |
|
 |
|
Harald hat Folgendes geschrieben: |
Hallo,
so eine Funktionsdefinition ist nicht sinnvoll.
In den runden Klammern stehen die Eingabevariablen, und 2 ist nunmal keine Variable.
Im Editor ist übrigens auch das Code Analyzer - Tool integriert, das dich über orange oder rote Markierungen auf Probleme hinweist.
Grüße,
Harald |
Ok, liegt wohl einfach daran, dass ich mich halt nicht gut auskenne.
Wenn ich dich richtig verstehe, ist es nicht möglich, eine Funktion über Run auszuführen, in dem man im Editor-Fenster alles einsetzt.
Ich muss also dort nur die Funktion mit Variablen definieren und dann im Command Windows aufrufen richtig?
Ich weiß echt nicht wo ich meine Fehler habe, besser gesagt erkenne ich sie nicht aufgrund meiner schwachen MATLAB-Kentnisse, aber ich kriege es immer noch nicht hin.
Ich öffne Editor und gebe folgendes ein:
Versuche dann die Funktion aufzurufen:
Fehlermeldung: Error using Beispiel. Too many input arguments.
Ich habe doch alles so eingegeben, wie du es mir vorgeschlagen hast oder nicht?
Edit: Jetzt hat es geklappt. Frage mich, wieso ich davor diese Fehlermeldung bekommen habe?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.02.2014, 18:30
Titel:
|
 |
|
 |
|
Hallo,
Zitat: |
Edit: Jetzt hat es geklappt. Frage mich, wieso ich davor diese Fehlermeldung bekommen habe? |
Die Frage ist vielmehr, was du zwischenzeitlich gemacht hast, damit es nun klappt. Vielleicht hattest du die Datei mal abgeändert und zwischendrin nicht gespeichert? Wenn du sie danach dann doch mal gespeichert hast, wird natürlich auch die richtige Datei ausgeführt.
Zum Run-Button:
- in Versionen bis einschließlich R2012a ist das Verwenden des Run-Buttons für sich nicht sinnvoll, da so der Funktion nicht die benötigten Argumente zur Verfügung gestellt werden.
- ab R2012b kommt, wenn Eingabeargumente fehlen, ein Popup, das einen zur Eingabe eines "Testbefehls" auffordert, der beim Drücken des Run-Buttons ausgeführt werden soll. So werden der Funktion dann die benötigten Eingabeargumente übergeben.
Zitat: |
Ok, liegt wohl einfach daran, dass ich mich halt nicht gut auskenne. |
Dann kann ich nur eine systematische Einarbeitung anhand von Vorlesungen / Büchern / Schulungen empfehlen. Zum Füllen von Verständnislücken ist auch die Dokumentation sehr gut.
Grüße,
Harald
|
|
|
Mysii |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 14.02.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.02.2014, 21:40
Titel:
|
 |
|
 |
|
Harald hat Folgendes geschrieben: |
Hallo,
Zitat: |
Edit: Jetzt hat es geklappt. Frage mich, wieso ich davor diese Fehlermeldung bekommen habe? |
Die Frage ist vielmehr, was du zwischenzeitlich gemacht hast, damit es nun klappt. Vielleicht hattest du die Datei mal abgeändert und zwischendrin nicht gespeichert? Wenn du sie danach dann doch mal gespeichert hast, wird natürlich auch die richtige Datei ausgeführt.
Zum Run-Button:
- in Versionen bis einschließlich R2012a ist das Verwenden des Run-Buttons für sich nicht sinnvoll, da so der Funktion nicht die benötigten Argumente zur Verfügung gestellt werden.
- ab R2012b kommt, wenn Eingabeargumente fehlen, ein Popup, das einen zur Eingabe eines "Testbefehls" auffordert, der beim Drücken des Run-Buttons ausgeführt werden soll. So werden der Funktion dann die benötigten Eingabeargumente übergeben.
Zitat: |
Ok, liegt wohl einfach daran, dass ich mich halt nicht gut auskenne. |
Dann kann ich nur eine systematische Einarbeitung anhand von Vorlesungen / Büchern / Schulungen empfehlen. Zum Füllen von Verständnislücken ist auch die Dokumentation sehr gut.
Grüße,
Harald |
Ja es lag wohl wirklich daran, dass ich es nicht abgespeichert habe.
Und das mit dem Run-Button:
Ich habe auch an paar Übungskursen teilgenommen. Da hat man die Funktionen ständig mit dem Run-Button ausgeführt. Deshalb war das so interessant für mich.
Wenn ich da den Dreh rauskrieg fühl ich mich schon ne Ecke sicherer.
Nochmal vielen Dank für den tollen Support.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 16.02.2014, 01:51
Titel:
|
 |
Hallo,
Zitat: |
Da hat man die Funktionen ständig mit dem Run-Button ausgeführt. |
Bist du sicher, dass das wirklich Funktionen waren und nicht 'nur' Skripte?
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|