如何对以下代码进行矢量化?
此处x_cords
和y_cords
都是7894 * 1向量,而buffImg
是虚拟零图像,我正在尝试绘制线并获取线段图像。
for i = 1:length(x_cords)
buffImg(y_cords(i),x_cords(i)) = 1;
end
答案 0 :(得分:2)
在这种情况下,您需要使用x_cords
- 函数将存储在y_cords
和sub2ind
中的下标索引转换为线性索引,然后您可以直接分配这样的索引:< / p>
buffImg=zeros(100,100);
x=randperm(100);
y=randperm(100);
buffImg(sub2ind(size(buffImg),x,y))=1;
只是为了告诉你,输出是一样的,以下是测试方法:
x=randperm(100);
y=randperm(100);
buffImg=zeros(100,100);
buffImg2=zeros(100,100);
for i = 1:length(x)
buffImg(x(i),y(i)) = 1;
end
buffImg2(sub2ind(size(buffImg),x,y))=1;
all(all(buffImg==buffImg2))