Ich habe ein vermutlich triviales Problem, komme aber nicht darauf, was ich falsch mache.
Im ersten Teil meines Programmes erstelle ich mir äquidistante Punkte t über eine bestimmte Länge und Zufallswerte an diesen Stellen (Vektor v). Wenn ich dieses Plotte, stimmt noch alles.
Nun berechne ich im zweiten Teil einen neuen Vekor x durch Aneinanderreihung verschiedenster Projektionen (tut aber hier nichts zur Sache).
Will ich nun diesen auch mit in diese Grafik plotten, wird aus meinem v aber ein Nullvektor gemacht. Wenn ich v nach dem Plotten ausgebe, ist es jedoch noch das selbe wie vorher.
hallo. da du leider nur beschreibst was du machst kann man unmöglich das problem finden ^^
bitte poste lauffähigen code der den fehler reproduziert.
der fehler ligt ja nicht im plot befehl sondern bei dem was davor passiert. und das hast du nicht mit angegeben
_________________
es handelt sich um ziemlich viele ineinander verschachtelte Programmme -.-
Also es gibt da eine Projektionsfunktion:
Code:
function p=PCthree(x, t, c, d, ic)% curvature constraint projector [3] % ic==0 bedeutet normale Projektoren, ic==1, dass es sich um intrepid % counterparts handelt)
if ic==1 for i=3:3:n-2
tau1=t(i+1)-t(i); % tau_i
tau2=t(i+2)-t(i+1); % tau_i+1
u=(tau2*(1:n==i)-(tau1+tau2)*(1:n==i+1)+tau1*(1:n==i+2))'; % (24) if u'*x<tau1*tau2*(3*d(i)-c(i))/2 for k=0:2
p(k+i)=x(k+i)-((u'*x-tau1*tau2*(d(i)+c(i))/2)/(norm(u))^2)*u(k+i);
end elseif tau1*tau2*(3*d(i)-c(i))/2<=u'*x && u'*x<d(i)*tau1*tau2
for k=0:2
p(k+i)=x(k+i)-2*((u'*x-d(i)*tau1*tau2/(norm(u))^2))*u(k+i);
end elseif c(i)*tau1*tau2<u'*x && u'*x <= tau1*tau2*(3*c(i)-d(i))/2 for k=0:2
p(k+i)=x(k+i)-2*((u'*x-c(i)*tau1*tau2/(norm(u))^2))*u(k+i);
end elseif tau1*tau2*(3*c(i)-d(i))/2 < u'*x
for k=0:2
p(k+i)=x(k+i)-((u'*x-tau1*tau2*(d(i)+c(i))/2)/(norm(u))^2)*u(k+i);
end end end else for i=3:3:n-2
tau1=t(i+1)-t(i); % tau_i
tau2=t(i+2)-t(i+1); % tau_i+1
u=(tau2*(1:n==i)-(tau1+tau2)*(1:n==i+1)+tau1*(1:n==i+2))'; % (24) if u'*x<d(i)*tau1*tau2
for k=0:2
p(k+i)=x(k+i)+((d(i)*tau1*tau2-u'*x)/(norm(u))^2)*u(k+i);
end elseif c(i)*tau1*tau2 < u'*x
for k=0:2
p(k+i)=x(k+i)+((c(i)*tau1*tau2-u'*x)/(norm(u))^2)*u(k+i);
end end end end end
so ok das programm läuft jetzt durch und an welcher stelle in deinem 2. post macht das programm nicht das was es soll?` ich kann bei mir keinen vektor finden der 0 ist.
_________________
Der Vektor v wird als Nullvektor geplottet, obwohl er, wenn man ihn ausgeben lässt, nicht null ist. Er wird ja nicht verändert, aber der Plot verändert sich.
wie gesagt bei mir wird nichts als "0 vektor" geplottet. ich kann das problem mit dem code nicht nachvollziehen.
lad mal ein beispiel bild hoch.
_________________
Habs grad selbst herausgefunden. Es schaut nur so aus, weil die Skalierung der Achse verändert wird. Ich Dussel Tut mir leid!
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
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.