0

forループで論理ステートメントを実行したい。

サイズ480(高さ)×640(幅)の画像がある場合、このセクションの幅635から640までの全高であるセクションで画像をスキャンしたいと思います。 (x、y)セル「cellData」にある座標。このセルには、画像全体に含まれる(x、y)座標の全リストが含まれています。

h = height
w = width
for h = 1:480
    for w = 635:640
        if cellData = 1;
            cellData(x,y) = SecondCoordinate(x,y);
        end
    end
end

基本的には、上記のセクションでポイントを選択しようとしています。ポイントはセル「cellData」からのものである必要があります。私はこれを正しくやっていますか?コードがcellDataから検出した最初の(x、y)座標は、「SecondCoordinate(x、y)」に(x、y)座標として保存されますか?

4

1 に答える 1

3

findを見てください。はるかに短いだけでなく、ネストされた for ループを使用した現在のアプローチよりも効率的です。

[row, col] = find(cellData)cellDataがゼロでないすべての座標を返します。

cellData に 1 と 0 以外の値が含まれている場合、次のようになります。

[row, col] = find(cellData ~= 0)
于 2012-09-13T13:45:59.903 に答える