これについていくつか助けていただきたいと思います。MATLAB - forループのシステムコマンドの出力から行列を構築する
私は以下を実行しようとしています。
forループ内では、2つのシステムコマンドを実行し、それらの2つのコマンドの出力がループの繰り返しごとに1行の行列の3つの要素を構成します。私はその後、すべての行列をExcelファイルに出力したいと考えています。
私はこれを試してみました:
for i=1:3,
command1 = ['fslmeants -i image1 -m example_' num2str(i) '.nii.gz' ]
C(i,1) = evalc('system([command1])')
command2 = ['fslstats example_' num2str(i) ' -V']
C(i,2:3) = evalc('system ([command2])')
end
私は次のエラーメッセージ受信:
を???割り当ては、私は、試み
> == 8 C(I、1)= EVALC( 'システム([Command1を])')でname_of_scriptを複数の非シングルトンRHS寸法非シングルトン添字より
誤差を有しますこの
for i=1:3,
command1 = ['fslmeants -i image1 -m example_' num2str(i) '.nii.gz' ]
A = evalc('system([command1])')
command2 = ['fslstats example_' num2str(i) ' -V']
B = evalc('system ([command2)')
end
システムの出力([Command1を])私はそれに行列要素を割り当てようとしていない場合、システムに対する出力
A =
0.302714
ans =
0
ある([Command2を])場合Iドン行列要素を代入しようとしないt Oそれは私は、(1,2)、Bを入力した場合
B =
1413 19506.814453
ans =
0
私は私のBの最初の番号の2番目の数字を与える
ans =
4
を得ることではなく、第二の数(19506.814453)として私は欲しかった。
次のようにBが文字列だった場合、私は、その後にチェック:
ischar B
ans =
1
私はシステム([Command1を])およびシステム(の出力を認識するMathWorks社のMATLABのための方法を見つけることができればだから私は推測[コマンド2 ])を、同じ行の3つの要素としてforループの繰り返しごとにソートします。
だから理想的には、行列Cの最初の行は
C(1,:) = [ 0.302714 1413 19506.814453 ]
なり、余分な行は、forループの各反復で添加されるであろう。
誰でも紛失した魂を啓発することはできますか?
'ischar B'は' ischar( 'B') 'に相当します。そのような変数を持たなくても、変数Bの内容とは独立して1を得ることができます。代わりに 'ischar(B)'を実行してください。 – yuk