1

「Matlab のマトリックスにヘッダーを追加する」という質問が見つかりました。これは、必要なことに非常に近いものでした。ヘッダーが大きく、これを複数回実行しているため、セル内のデータを保持したいと思っていましたが、時間がかかるため、ファイル io を使用したくありません。

これは私が持っているものです...

  • header = ( '四半期', '月額残高', '年間残高');

    データ =

        1        30000    150000
    
        2        20000    130000
    

そして、私はこれを得ることができないようです

out = 

  Quarter    monthly am    annual am
        1         30000       150000

        2         20000      130000

とてもイライラします。num2str やその他の機能を試してみました... num2cell を試して、大きな配列を作成し、それらを埋めていきます... 幸せな金曜日、家に帰ります T_T

4

2 に答える 2

6

Statistics Toolbox にアクセスできる場合は、データセット配列を作成できます

header = {'Quarter', 'monthly amount remaining', 'annual amountremaining'}
data =    [ 1        30000    150000;
    2        20000    130000];

ds = dataset({data,header{:}})

ds = 

    Quarter    monthlyAmountRemaining    annualAmountremaining
    1          30000                     1.5e+05              
    2          20000                     1.3e+05  

これにより、ヘッダー名のスペースが削除されることに注意してください。ただし、データセットでは、これらの名前を使用して、次のような列に簡単にアクセスできます。

>> ds.Quarter

ans =

     1
     2

Excel に書き込みたいだけの場合 (データセット メソッドを使用しない場合)、単一の cell 配列を作成できます。

 [header;num2cell(data)]

ans = 

    'Quarter'    'monthly amount remaining'    'annual amountremaining'
    [      1]    [                   30000]    [                150000]
    [      2]    [                   20000]    [                130000]
于 2012-06-29T22:11:08.247 に答える
0

私の知る限り、それに対する真の組み込みサポートはありません。Xurtioが言及したことに関連して、xlsreadを実行するときにMatlabが元に戻すことを逆に実行したいと考えています。彼らの解決策は、数値の行列 (サイズが固定されているため、配列スタイルのインデックス付けに適しています) と、可変サイズの文字列のセル配列を作成することです。

以下は disp() Matlab docs からのほとんどのものであり、効果を達成しますが、柔軟な方法ではありません:

header='        Quarter  MonthlyAM   AnnualAM  ';
data=[1 30000 150000; 2 20000 130000];
disp(header);
disp(data);
    Quarter  MonthlyAM   AnnualAM  
       1       30000      150000
       2       20000      130000

より柔軟な書式設定を実現したい場合は、データ マトリックスの sprintf 仲介を調べることができます。

于 2012-06-29T21:27:49.967 に答える