MATLABでスパーストリプレットをスパース行列に変換するために使用できるコマンドは何ですか?私はこれを試してきました:B=st_to_msm(A)
、ここで、A
は「.dat」ファイルから読み取られたスパーストリプレットであり、B
変数です。
しかし、それは私にとってはうまくいきません。それを修正する方法、または変換を行うための別のコマンドがあるかどうかを知りたいです。
MATLABでスパーストリプレットをスパース行列に変換するために使用できるコマンドは何ですか?私はこれを試してきました:B=st_to_msm(A)
、ここで、A
は「.dat」ファイルから読み取られたスパーストリプレットであり、B
変数です。
しかし、それは私にとってはうまくいきません。それを修正する方法、または変換を行うための別のコマンドがあるかどうかを知りたいです。
st_to_msm のコードはhttp://people.sc.fsu.edu/~jburkardt/m_src/st_to_msm/st_to_msm.mです。
[ nrow, ncol, nnzero ] = st_header_read ( input_file );
[ row, col, a ] = st_data_read ( input_file, nrow, ncol, nnzero );
base0 = 0;
base1 = 1;
row = st_rebase ( base0, base1, nnzero, row );
col = st_rebase ( base0, base1, nnzero, col );
b = sparse ( row, col, a, nrow, ncol, nnzero );
つまり、ファイルから次元と 3 つのベクトルを読み取り、それらをsparse
関数の引数として使用します。私はあなたA
がそれらの3つのベクトルで構成されていると思いますrow
, col
, a
. 詳細については、ドキュメントをsparse
参照してください。
MATLAB には 2D 疎行列しかないため、3D アドレッシングは疎行列では機能しません。
MATLAB Central File Exchange で N 次元のスパース配列を確認することをお勧めします。