![](/img/trans.png)
[英]What is alternative for `:=` in lower python version for this for-loop?
[英]Octave/Matlab version of this Python for-loop
我只想知道在python中这个特定的for循环是否有任何Octave / Matlab等效语法:
for (i,j) in [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7)]:
a[i,j] = 1
我需要它来简化我的图像处理任务,在这里我可以轻松构造图像矩阵,而不必为图像矩阵的几乎每个元素输入每个像素值。 因此,如果还有其他方法可以在Octave / Matlab中实现上述功能,请告诉我。
谢谢。
如果你想设置一系列像素a
由坐标给出相同的值,你可以做如下:
coord = [1,2; 2,3; 3,4; 4,5; 5,6; 6,7];
ind = sub2ind(size(a), coord(:,1), coord(: 2));
a(ind) = 1;
您可以替换最后1
作为坐标与尽可能多的元素的向量coord
分配不同的值到每个像素。
注意与第一索引MATLAB索引行,这样的第一列coord
对应的y坐标。
这里最简单的是:
for i = 1 : 6
a(i, i+1) = 1; % Alternatively: j=i+1; a(i,j)=1;
end
更灵活的选择是构造对:
vals = [1,2; … ; 6,7]; % Your i,j pairs. Possibly even put 3 numbers there, i,j,value.
for i = 1 : size(vals, 1)
a(vals(i,1), vals(i,2)) = 1;
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.