Processingの複製について質問です。
clone()やarrayCopyを用いて、配列をコピーする際、一次元配列であれば、複製元の配列は複製後の配列の影響を受けないということを知っているのですが、二次元配列だと、どうも影響を受けるようです。以下のようなプログラムを実行した結果、以下の結果となりました。
----------------------------------コード----------------------------------
float[][] matrix1, matrix2;
void setup() {
matrix1 = Function1("data.csv");
matrix2 = Function2(matrix1.clone());
for (int i=0; i<matrix1.length; i++) {
println(matrix1[i]);
}
}
float[][] Function1(String s){
float[][] a={{1,2,3},{4,5,6}};
return a;
}
float[][] Function2(float[][] a){
a[0][0]=10;
return a;
}
----------------------------------結果----------------------------------
[0]10
[1]2
[0]3
[1]4
私の予想では、matrix1[0][0]=1のままであると思ったのですが、cloneを使っているにもかかわらず、10に書き換えられてしまします。ちなみに、一次元配列であれば、書き換えられることはありませんでした。
どのように回避したらよいでしょうか?
よろしくお願いします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/12 12:18