matlab の関数に問題があります。この特定の機能は、光信号をフィルタリングするためのものです。以下に示すように、関数と while ループ自体で使用したコーディングを追加しました。コードは NXT レゴ ロボット用に書かれています。
カウント変数 ( i = i + 1 ) を関数で機能させる方法のヒントはありますか? Light(i) をプロットできますか? さまざまなコードを試して動作させると、大量のエラー メッセージが表示されるためです。
function [light] = filter_func( i)
lightI(i) = GetLight(SENSOR_3);
if i==1
light(i)=lightI(i)
elseif i==2
light(i) = 0.55*lightI(i) + 0.45*lightI(i-1)
else
light(i) = 0.4*lightI(i) + 0.3*lightI(i-1) + 0.3*lightI(i-2);
end
end
i=1
while true
lightI(i) = GetLight(SENSOR_3); % Get’s a lightvalue between 0 and 1024.
if i>2
light =filter_func(i)
light=round(light);
else
light(i) = GetLight(SENSOR_3);;
end
i=1+i
plot(light(end-90:end), 'r-');
title('Lightvalue')
axis([0 100 0 1023]) ;
end