1
我正在努力与一些逻辑/语法.... 我有一个模拟程序,它决定了墨迹厚度,因为它通过一些滚筒。我想添加一些功能,但似乎无法访问我想要的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%) 对我来说,主要的挫折是我知道我想操纵的数据就在那里 - 我只是无法理解它!一如既往,任何建议非常感谢! 预先感谢
@ Florian Brucker非常感谢!我搜索了很多谷歌网页(和SO!)寻找这种语法。它让我直接访问正是我想要的元素!谢谢你,享受一天的其余时间! – richyo1000 2013-03-06 13:21:00