numSeg = 10; %Set number of segments
wSeg = 10; %Set segment width
x = ones(1,numSeg*wSeg);
为每个创建的段自动提供变量的最有效方法是什么?例如:
bin1 = x(1:10)
bin2 = x(11:20)
等等。
最终我将随机生成一个数字(1:numSeg)来选择一个垃圾箱,然后更改它:
我主要关注如何能够使用变量名称或数字(例如 bin 编号)来引用矩阵的特定区域,以便我可以进行更改 - 这只不过是乘以所选的值'x' 内的区域由另一个 wSeg 宽的矩阵组成。我不想手动指定每个 bin1、bin2、bin3 等。
最佳答案
for segment_id = 1:numSeg
bin = x((segment_id-1)*wSeg+1 : segment_id*wSeg) %// x values for each segment.
%// So, for segment_id = 1, you would have bin as x(1:10)
%// for segment_id = 2, you would have bin as x(11:20)
%// ........
%// for segment_id = 10, you would have bin as x(91:100)
end
因此,您可以使用 segment_id = randi([1 numSeg])
获取随机的segment_id,然后使用 -
bin = x((segment_id-1)*wSeg+1 : segment_id*wSeg)
获取该特定随机段的 bin 值。
作为示例,我输入 -
segment_id = randi([1 numSeg])
我得到了-
segment_id =
7
然后,我使用 bin = x((segment_id-1)*wSeg+1 :egment_id*wSeg)
给了我 -
ans =
61 62 63 64 65 66 67 68 69 70
关于matlab - 将矩阵的部分分离为变量 - MATLAB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26084473/