2

私のExcelファイルで。各列の最初の行は文字列です。列の残りの部分は、その文字列のデータです。

'time' 
1
2
3
4

Excelの最初の行を取得し、それをMatlabの変数名にし、残りの列データはその変数の数値データにします。したがって、Matlabでは、時間は数値1、2、3、4の列ベクトルになります。

これを機能させることができません。

4

1 に答える 1

2

どうですか

[val nms] = xlsread( xlsFileName );
assert( size(val,2) == size(nms,2), 'mismatch number of columns and number of names');
for ci=1:size(val,2)
    eval( [ nms{ci}, ' = val(:,ci);' ] ); % name the column
end

これが機能する理由:

  1. このコードはxlsread2つの出力変数を使用して呼び出します。このようxlsreadにして、数値データを最初の変数に入れ、テキストデータを2番目の変数に入れます。詳細については、xlsreadドキュメントを参照してください。

  2. 名前が別の変数()に格納されているeval変数()に値を割り当てるために使用します。コマンドの引数は文字列であり、データの最初の列( )の値を。という名前の新しい変数に割り当てるMatlabコマンドです。timenms{1}eval time = val(:,1);val(:,1)time

于 2013-01-03T15:35:26.747 に答える