您好我是matlab的新手。
如何在不使用for循环的情况下访问或分配2darray的值。
我有使用for循环的工作代码。我读了一下冒号运算符,但它可以在一个语句中为单个行或列分配值。myImage(:5) = 1;
将分配1到5行;
代码
myImage = ones(128,128);
rows = 128;
columns = 128;
for row = 1 : rows
for column = 1 : columns
if row <= 64 && column <= 64
myImage(row , column) = 0;
elseif row > 64 && column > 64
myImage(row , column) = 0;
end
end
end
答案 0 :(得分:2)
使用meshgrid创建逻辑索引!
[x,y]=meshgrid(1:128,1:128);
myImage = ones(128,128);
myImage( x<= 64 & y<= 64)=0;
myImage( x> 64 & y> 64)=0;