Matlab 更新向量中的单个元素

Matlab 更新向量中的单个元素,matlab,matrix,Matlab,Matrix,我正在努力学习一些逻辑/语法。。。。 我有一个模拟程序,它可以在油墨通过一些滚筒时确定油墨的厚度。我想添加一些功能,但似乎无法访问我想要的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

我正在努力学习一些逻辑/语法。。。。 我有一个模拟程序,它可以在油墨通过一些滚筒时确定油墨的厚度。我想添加一些功能,但似乎无法访问我想要的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
第一个辊子“充满墨水”的部分——辊子被分割成整数段(NBIN),我只希望元素13、14和15上有墨水(其余为零)。 行向量长度为1x95。 我似乎不能这样做。我尝试过各种方法,我认为最有希望的是创建一个由零组成的矩阵,后面跟有如下内容:

rollers(1).ink(13) = 1;
等等。。。 紧接着“用墨水填充”部分。 这似乎没有任何作用(甚至没有错误) 我在程序的输出上也有类似的问题——我只想“接受”滚筒表面一定百分比的墨水(比如70%左右) 对我来说,最让我沮丧的是,我知道我想要处理的数据就在那里——我就是拿不到! 一如既往,我们非常感谢您的任何建议!
提前感谢

有几种方法可以创建除元素13、14和15外均为零的1x95向量:

使用临时变量:

I = zeros(1, 95);
I(13 : 15) = 1;
直接使用串联:

[zeros(1, 12), ones(1, 3), zeros(1, 80)]
rollers(1).ink = [zeros(1, 12), ones(1, 3), zeros(1, 80)];
我会选择连接:

[zeros(1, 12), ones(1, 3), zeros(1, 80)]
rollers(1).ink = [zeros(1, 12), ones(1, 3), zeros(1, 80)];

有几种方法可以创建除元素13、14和15之外的所有零的1x95向量:

使用临时变量:

I = zeros(1, 95);
I(13 : 15) = 1;
直接使用串联:

[zeros(1, 12), ones(1, 3), zeros(1, 80)]
rollers(1).ink = [zeros(1, 12), ones(1, 3), zeros(1, 80)];
我会选择连接:

[zeros(1, 12), ones(1, 3), zeros(1, 80)]
rollers(1).ink = [zeros(1, 12), ones(1, 3), zeros(1, 80)];

@Florian Brucker非常感谢!我已经搜索了很多谷歌页面(等等!)来寻找这种语法。它让我直接访问的元素,这正是我想要的!谢谢你,祝你今天过得愉快!@Florian Brucker非常感谢!我已经搜索了很多谷歌页面(等等!)来寻找这种语法。它让我直接访问的元素,这正是我想要的!谢谢,祝你今天过得愉快!