0

Matlab 2013a と i7 プロセッサを搭載した Ubuntu 13.04 マシンで、Matlab コードの一部を並行して実行しようとしています。

range = [0.75 0.8];
scores = cell(length(range), 1);

parfor i=1:length(range)
   pca_accuracy = range(i);
   scores{i, :} = cross_validation(data_features, labels, 69, pca_accuracy);
end

cross_validation()行列を返します。ただし、このコードを実行した後でも、 variablescoresは 2 行 1 列の cell 配列のままで、各セルは空です。cross_validation()何も返さないようです。

parfor ループを通常の for ループに変換すると、このコンピューターでも問題なく動作します。また、このコードを別のコンピューター (Windows 7、Matlab 2013b) で (parfor ループを使用して) テストしたところ、正常に動作しました。

の短いバージョンcross_validation()は次のとおりです。

function scores = cross_validation(data_features, labels, number_of_test_blocks, pca_accuracy)
   number_of_samples = size(data_features, 1);
   samples_per_test_block = ceil(number_of_samples/number_of_test_blocks);
   scores = zeros(number_of_test_blocks, samples_per_test_block);
end

誰でもアドバイスできますか?

ありがとう!

4

1 に答える 1