私はいくつかの論理/構文に苦労しています...私はいくつかのローラーを通過するときにインクの厚さを決定するシミュレーションプログラムを持っています。いくつかの機能を追加したいのですが、1xNベクターで必要な要素にアクセスできないようです。私の問題はここのどこかにあると思います:
% # Iterate through timesteps
for tt = 2:nTimeSteps
% # Fill first roller with ink
rollers(1).ink = ones(1,nBins(1));
% # 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
end
最初のローラーが「インクで満たされている」部分-ローラーは整数セグメント(nBins)に分割されており、インクが付いた要素13、14、および15のみが必要です(残りはゼロです)。行ベクトルの長さは1x95です。私はこれを行うことができないようです。私はさまざまな方法を試しましたが、最も有望だと思ったのは、ゼロの行列を作成し、その後に次のようなものを続けることでした。
rollers(1).ink(13) = 1;
など...「インクで満たす」部分の直後。これは何もしないようです(エラーさえありません)私もプログラムの出力に同様の問題があります-ローラー表面のパーセンテージでのみインクを「受け入れる」ことを望みます(たとえば約70%) )私にとっての主な不満は、操作したいデータがすぐそこにあることを知っていることです-私はそれを取得することができません!いつものように、どんなアドバイスも大歓迎です!前もって感謝します