自分のコンピューターにMatlabR2012aをインストールし、友人のコンピューターにMatlab R2009a(マルチスレッド)をインストールしています。私のコンピューターには2GBのRAMしかありませんが、友人のコンピューターには128 GBとより優れたプロセッサーがあるため、友人のコンピューターでコードを実行することにしました。
リモートデスクトップ接続プログラムを使用して彼のコンピューターに接続し、ドロップボックスからコードとデータセットをダウンロードして、コードを実行しました。しかし、1時間経ってもコードの実行が終了しませんでした。(私のコンピューターでは約20分かかりました。私の友人のシステムの方が私のシステムよりもはるかに優れていると思われる場合は、20分もかからないはずです。)その後、さらに数時間待ちましたが、実行は終了しませんでした。
次に、問題がどこにあるかを理解するために、コードを手作業で段階的に評価し、次のループの実行を完了できないことに気付きました。
l=1;
for n=1:max_t
for m=1:t(1,n).numberofPoints
x_t(l)=t(1,n).matrix(m,1);
y_t(l)=t(1,n).matrix(m,2);
z_t(l)=t(1,n).matrix(m,3);
l=l+1;
end
end
minx = min(x_t(:));
miny = min(y_t(:));
minz = min(z_t(:));
x、y、z座標で最小点を取得するのは単純なループです。(このループには何も問題はないと確信しています。PCでは正常に機能します。)構造体の最大点と最小点を取得するためにループは必要ないことはわかっていますが、MATLABは初めてで、あまり詳しくありません。したがって、それは私にとって最も簡単なオプションのように思えました。
私のRAMはそれ以降のプロセスには十分ではないので、私は本当に友達のコンピューターを使用できなければなりません。したがって、私はこの問題を解決する必要があります。
同じコードが私のコンピューターでは機能するが、友達のコンピューターでは機能しない理由は何でしょうか。