Hi Leute, ich möchte gern einen einfachen Dezimierer in Simulink basteln. Da meine Daten als 131072x1 frame based daten vorliegen, möchte ich nach der Filterung einfach jeden L´ten (L=Dezimierungsfaktor) Wert entnehmen und neu zusammenbauen. Dazu habe ich versucht eine For-Schleife mit Hilfe einer Matlabfunktion einzubinden. Leider bin ich dazu nicht in der Lage. Fehlermeldung: "Size mismatch (size [1 x :?] ~= size [0 x 0])..." Code der Schleife: function y = fcn(u,L) %#codegen v=[]; w=length(u); for i = 1:L:w x = u(i); v = [v, x]; end y=v; Bitte dringend um Hilfe, das kann doch nicht so schwer sein. Danke Andreas
Problem gelöst, in meine Fall lautet der Richtige Code: function y = fcn(u,L) %#codegen w = length(u)-1; v = zeros(1,(w)); for idx = 1:L:w x = u(idx); v(idx) = real(x); end y=v; Für diejenigen, die beim suchen mal auf dieses Thema stoßen: der eigentlich dimensoinsfehler lag in der Vordefinition des Vektors v sowie einem falschen Schleifenendwert w.
Und es ist doch nicht richtig gelöst! Schreibe ich: v = zeros(z,1) %Was nichts ändern sollte, da z=4 ist erhalte ich eine Fehlermeldung Ersetze ich aber auch z zu z = ((length(u))/2) %(Was eigentlich genau das gleiche ist, da L=2 ist) funktioniert wieder nichts mehr. Langsam weiss ich echt nicht mehr weiter :-/ Bitte um Hilfe! Gruß
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.