我正在寻找一种方法来更新矢量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向量滚轮(2).ink是我想要更新的向量。目前向量只填充一次,所以我有来自行98:103的向量。我希望我的系统的每个“轮换”都能填充这个范围的元素,而不仅仅是第一次。原因-我试图展示从滚筒表面的一小部分间歇性地添加油墨,因此只需要填充五个单元。我想如果我从1迭代到时间步数,在循环中步长为nBins-Max:
for tt = 1:nBins_max:nTimeSteps这似乎不是我要找的。我也希望在最后从系统中移除墨水。对于每一次旋转,我希望能够在每一次旋转中去除一定百分比的墨水,这样它就不会留在系统中(就像它被打印到一张纸上并被拿走一样)。希望有人能理解这一点,也许能就如何处理我的其中一个或两个问题提供一些建议。
发布于 2013-03-08 18:31:05
你的解释与你的代码不太匹配(如果你愿意,反之亦然),所以我不完全确定你想要做什么,但以下可能会帮助你找到解决方案或更清楚地表达你的问题。
rollers(2).ink有1行216列,所以像rollers(2).ink(98:103) = something这样的操作不会更新第98行到第103行。另请注意,该向量的元素98被初始化为0,它不包括在被初始化为1.for tt = 1:nBins_max:nTimeSteps,它跨越时间步长的向量。当然,您希望编写类似rollers(2).ink(99:103) = new_values.rollers(2).ink = rollers(2).ink * 0.975这样的代码行;显然,您希望将我选择的每旋转2.5%的清除率替换为适合您的模拟的内容。https://stackoverflow.com/questions/15290156
复制相似问题