在matlab中访问2darray的元素

时间:2017-02-28 17:31:22

标签: arrays matlab

您好我是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

1 个答案:

答案 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;