2017-11-24 14 views
2

MATLABのparforループ内でテーブルを使用しようとしています。これは私に "透明度違反エラーです。透明性についてはParallel Computing Toolboxを参照してください"この表を作成しようとしていますので、MATLAB分類学習者アプリ(trainedClassifier.prefictFcn(T))の訓練された分類子を使って予測できます。 parforループ内にテーブルを作成するか、分類子に入力できるテーブルの代わりが必要です。parforループでテーブルを使用するときの透明度エラー

parfor i=1:100 
    acheck=1; 
    bcheck=2; 
    ccheck=3; 
    T=table(acheck,bcheck,ccheck); 
end 

答えて

2

このソリューションは、あなたの特定の問題のために働く:あなたの元のプログラムであなただけの既存の値を上書きし、1行の表で終わる

parfor i=1:100 
    acheck=1; 
    bcheck=2; 
    ccheck=3; 
    T(i,:)=table([acheck,bcheck,ccheck]); 
end 

注こと。私はそれが意図されていないと思った。実際には、それはのための結果です。

また、これはparforなので、Tはloopを使って作成されます(acheckなども同様)。この変数は一時的なもので、ローカルの各プロセスに表示され、グローバルスコープで破棄されます(詳細はhereを参照してください)。

プログラムは、上書きとアクセシビリティの両方を修正するために、変数の各セットをTの各行に割り当てます。角括弧を省略すると、プログラムは透過エラーをスローします。残念ながら、私はなぜそれがわからないのですが、テーブルのデータ構造によって行われた操作が原因である可能性があります。たぶん誰かが答えを知っているだろうが、これは今あなたの問題を解決するようだ。

関連する問題