システムが完全に回転するたびに、ベクトル [nx113] 内の特定の要素を更新する方法を探しています。
%% # Iterate through timesteps
for tt = 1:nTimeSteps
% # Initialise ink on transfer roller
rollers(2).ink = [zeros(1,98),ones(1,5),zeros(1,113)];
% # Rotate all rollers
for ii = 1:N
rollers(ii).ink(:) = ...
circshift(rollers(ii).ink(:),rollers(ii).rotDirection);
end
% # Update all roller-connections
for ii = 1:N
for jj = 1:nBins(ii)
if(rollers(ii).connections(jj) ~= 0)
index1 = rollers(ii).connections(jj);
index2 = find(ii == rollers(index1).connections);
ink1 = rollers(ii).ink(jj);
ink2 = rollers(index1).ink(index2);
rollers(ii).ink(jj) = (ink1+ink2)/2;
rollers(index1).ink(index2) = (ink1+ink2)/2;
end
end
end
% # Calculate average amount of ink on each roller
for ii = 1:N
averageAmountOfInk(tt,ii) = mean(rollers(ii).ink);
end
rollers(18).TakeOff = averageAmountOfInk*0.6;
end
ベクトル rollers(2).ink は、更新したいベクトルです。現在、ベクトルは 1 回だけ入力されるため、行 98:103 からのものがあります。初めてだけでなく、システムの「ローテーション」ごとにこの範囲の要素を入力したいと思います。その理由は、ローラー表面のごく一部から断続的に追加されるインクを表示しようとしているため、5 つのセルのみを設定する必要があるためです。ループ内のステップサイズ nBins-Max で、1 からタイムステップ数まで反復すると、次のようになると思いました。
for tt = 1:nBins_max:nTimeSteps
これは私が求めているものではないようです。また、最後にシステムからインクを削除したいと考えています。回転ごとに、回転ごとに一定の割合のインクを除去できるようにして、システム内に留まらないようにしたいと考えています (あたかもシートに印刷されて取り除かれたかのように)。誰かがこれを理解し、私の問題のいずれかまたは両方を進める方法についてアドバイスを提供してくれることを願っています.