1. ホーム
  2. arrays

[解決済み] MATLABでn次元の行列の各要素を反復処理するにはどうすればよいですか?

2022-02-16 19:04:01

質問内容

問題があります。MATLABでn次元の行列の各要素を反復処理する必要があります。問題は、任意の次元数でこれを行う方法がわからないことです。私は次のように言うことができることを知っています。

for i = 1:size(m,1)
    for j = 1:size(m,2)
        for k = 1:size(m,3)

などがありますが、任意の次元数で行う方法はあるのでしょうか?

どのように解決するのですか?

各要素にアクセスするためにリニアインデックスを使用することができます。

for idx = 1:numel(array)
    element = array(idx)
    ....
end

これは、i,j,k, の位置を知る必要がない場合に便利です。 しかし、もしインデックスを知る必要がないのなら、arrayfun() を使ったほうがいいでしょう。