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

PRogrammcode B-Spline geht nicht HILFEEE!!

 

septi
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2011, 13:26     Titel: PRogrammcode B-Spline geht nicht HILFEEE!!
  Antworten mit Zitat      
Ich brauche dringend Hilfe für meine Arbeit!!!!



function spline(n,order)

close all;
if (nargin ~= 2)
order = 4;
end
nplot = 100;

if (n < order)
display([' !!! Error: Choose n >= order=',num2str(order),' !!!']);
return;
end

figure(1);
hold on; box on;
set(gca,'Fontsize',16);

t = linspace(0,1,nplot);

for i = 1:n
title(['Choose ',num2str(i),' th. control point']);
p(i,Smile = ginput(1);
hold off;
plot(p(:,1),p(:,2),'k-','LineWidth',2);
axis([0 1 0 1]);
hold on; box on;
if (i >= order)
T = linspace(0,1,i-order+2);
y = linspace(0,1,1000);
p_spl = DEBOOR(T,p,y,order);
plot(p_spl(:,1),p_spl(:,2),'b-','LineWidth',4);
end
plot(p(:,1),p(:,2),'ro','MarkerSize',10,'MarkerFaceColor','r');
end

title(['B-Spline-curve with ',num2str(n),' control points of order ',num2str(order)]);


ich habe ein Code unter Matlab die ich leider nicht plotten kann er zeigt mir immer Fehler an der Stelle if (n < order)

Ich brauch dringend Hilfe!!!!
Danke im Voraus.
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 06.08.2011, 15:28     Titel:
  Antworten mit Zitat      
Ich gehe mal davon aus, dass es sich hier um eine selbst geschriebene Funktion handelt. Gib ihr mal einen anderen Namen. Die Funktion spline() gibt es nämlich schon in Matlab, was zu Fehlern führen kann.

Bitte Codebuttons des Fourms für das Posten von Code benutzen...dann ist es besser lesbar.
Private Nachricht senden Benutzer-Profile anzeigen
 
septi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2011, 16:12     Titel:
  Antworten mit Zitat      
Code:
function spline(n,order)

close all;
if (nargin ~= 2)
order = 4;
end
nplot = 100;

if (n < order)
display([' !!! Error: Choose n >= order=',num2str(order),' !!!']);
return;
end

figure(1);
hold on; box on;
set(gca,'Fontsize',16);

t = linspace(0,1,nplot);

for i = 1:n
title(['Choose ',num2str(i),' th. control point']);
p(i,Smile = ginput(1);
hold off;
plot(p(:,1),p(:,2),'k-','LineWidth',2);
axis([0 1 0 1]);
hold on; box on;
if (i >= order)
T = linspace(0,1,i-order+2);
y = linspace(0,1,1000);
p_spl = DEBOOR(T,p,y,order);
plot(p_spl(:,1),p_spl(:,2),'b-','LineWidth',4);
end
plot(p(:,1),p(:,2),'ro','MarkerSize',10,'MarkerFaceColor','r');
end

title(['B-Spline-curve with ',num2str(n),' control points of order ',num2str(order)]);


habe es versucht anstatt spline was anderes einzugeben geht aber leieder nicht. Es zeigt mir Fehler bei if (n < order) WARUM???
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 06.08.2011, 16:55     Titel:
  Antworten mit Zitat      
Hallo,

die Zeile bei der Fehlermeldung vor dem if (n < order) ist die entscheidente:
Code:

??? Input argument "n" is undefined.

Error in ==> untitled44 at 9
if (n < order)
 


Also falls du das Argument "n" nicht der Funktion übergibst kennt sie Matlab eben nicht, daher die Fehlermeldung! So einfach ist das Smile. Zwar überprüfst du die Anzahl der übergebenen Argumente, weist aber nur "order" einen Wert zu, so dass du davon ausgehst das "n" immer übergeben wird. Falls das nicht der Fall ist, siehe oben.

MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 06.08.2011, 17:29     Titel:
  Antworten mit Zitat      
Von einem richtigen Funktionsaufruf sollte man schon von ausgehen können...n ist ja auch als Inputargument definiert. Hast du die Funktion nach der Namensänderung auch unter dem neuen Namen abgespeichert?
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 06.08.2011, 17:32     Titel:
  Antworten mit Zitat      
Hallo DSP,

Zitat:
Von einem richtigen Funktionsaufruf sollte man schon von ausgehen können


da hasst du Recht, aber ich habe hier schon vieles erlebt Smile.

PS: Es wird wohl schon die richtige Funktion aufgerufen, ansonsten würde die Fehlermeldung ja eine Codezeile aus der Spline Funktion von Matlab anzeigen und nicht aus seiner.

MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
septi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2011, 17:39     Titel:
  Antworten mit Zitat      
Ich habe es unter einem Neuen Namen gespeichert trotzdem klappt es nicht???

mfg
septi
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 06.08.2011, 17:50     Titel:
  Antworten mit Zitat      
Hallo,

ok dann schreib mal bitte wie du die Funktion aufrufst, am besten mit Testdaten für "n" und ggf. "order" und gib einmal die gesamte Fehlermeldung an!

MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
vega1013
Forum-Century

Forum-Century


Beiträge: 162
Anmeldedatum: 26.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2011, 17:57     Titel:
  Antworten mit Zitat      
Hallo,

also das folgende Minimalbeispiel funktioniert:

Code:
function spline_test(n,order)

close all;
if (nargin ~= 2)
order = 4;
end
nplot = 100;

if (n < order)
display([' !!! Error: Choose n >= order=',num2str(order),' !!!']);
return;
end
 


Denke auch das vieleicht was mit dem Aufruf nicht stimmt....

Gruß vega
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 06.08.2011, 18:28     Titel:
  Antworten mit Zitat      
Hallo,

also wenn ich einfach mal für n=5 einsetze, dann funktioniert dein Programm bei mir (also das komplette)! Eine Fehlermeldung erscheint dann nur weil ich deine Funktion "DEBOOR" nicht habe.

MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 06.08.2011, 20:28     Titel:
  Antworten mit Zitat      
Falls es trotz richtiger Funtkionsübergabe immer noch nicht geht, poste doch mal bitte die genaue Fehlermeldung.
Private Nachricht senden Benutzer-Profile anzeigen
 
septi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2011, 09:56     Titel:
  Antworten mit Zitat      
Suuuuuupppper ich danke euch allen hat funktioniert:) danke danke danke:)

MFG
Septi
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 07.08.2011, 14:40     Titel:
  Antworten mit Zitat      
Hallo,

...und was hasst du nun anders gemacht?

MFG

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