2017-02-28 8 views
1

こんにちは、私はmatlabを初めて使っています。 forループを使用せずに2darrayの値にアクセスまたは割り当てする方法。 forループを使用している作業コードがあります。私はコロン演算子について読んでいますが、1つの行または1つのstatement.egの列に値を割り当てることができますmyImage(:5) = 1;は1行から5行を割り当てます。matlabで2darrayの要素にアクセスする

コード

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 

答えて

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; 
+0

あなたは命の恩人です。ありがとう – usmanwalana

+1

@AnderBiguriなぜあなたは 'myImage = ones(128,128);をしないのですか? myImage(1:64,1:64)= 0; myImage(65:end、65:end)= 0; '?この方法は簡単ではないですか? – Max

+1

@マックス私はOPがexaplmeが投稿されたより複雑な条件に興味があると思ったので。 –