-1

次のプログラムを作成して、テーブルCombtを作成しました。このテーブルに行名を追加しようとしていますが、うまくいきません。行名を含む新しい列を追加し、各行に順番に名前を付けたい(['Row' num2str(j)])

%% Create tables.
combt = [];

%% Loop.
for i = [224:231, 271:281];
    j = sprintf('%04d', i)

%% Name the fit results sequentially.
comb.(['comb' j]) = cfit(fitresult);

%% Export combined variables to table.
combt = [combt;comb.(['comb' j])];

end

%% Name the columns.
final = dataset({combt 'a','b','c','d','wa','wb','wc','wd','xa','xb','xc','xd','y0','rsquare'});

現在のテーブルは次のようになります。

現在のテーブルはこんな感じ

次のようにする必要があります (行名は で取得できます(['Row' num2str(j)])):

このように見える必要があります

4

3 に答える 3

0

助けてくれてありがとう。連続したファイル番号を別の列に追加する非常に簡単な答えを見つけました(私がしなければならなかった のはrow.(['row' j]) = [i , comb.(['comb' j])]、別の列名'row'を追加してオフコースにすることだけでしたfinal = dataset({combt 'row', 'a','b','c','d','wa','wb','wc','wd','xa','xb','xc','xd','y0','rsquare'});)。

与える:

%% Create tables.
combt = [];

%% Loop.
for i = [224:231, 271:281];
    j = sprintf('%04d', i)

%% Name the fit results sequentially.
comb.(['comb' j]) = cfit(fitresult);

%% Add a column.
row.(['row' j]) = [i , comb.(['comb' j])]


%% Export combined variables to table.
combt = [combt;row.(['row' j])];

end

%% Name the columns.
final = dataset({combt 'row', 'a','b','c','d','wa','wb','wc','wd','xa','xb','xc','xd','y0','rsquare'});

次の表を生成します。

ここに画像の説明を入力

于 2014-06-02T15:31:40.827 に答える
0

異なるデータ形式を 1 つのマトリックスに保存する場合は、セルを使用する必要があります。あなたの場合、新しいdata_arrayを作成します(保存したい場所):

my_old_size = size(my_old_data);
my_new_data= cell(my_old_size(1),my_old_size(2)+1);

次に、各要素を str、cell、または char に変換します。セルに double を書き込んで新しい場所に書き込むことはできないためです。

for k=1:my_old_size(1)
  for l=1:my_old_size(2)
    my_new_data(k,l+1)= {my_old_data(k,l)};
  end
end

最後になりましたが、行名を追加します。ループの外で Row-name の定数部分を定義する必要があることに注意してください。そうしないと、strcat が各値を既存の名前に追加します。

my_rowname = 'Row_';
for k=1:my_old_size(1)
  my_new_matrix(k,1) = strcat(my_rowname,num2str(k));
end

これにより、Row_1、Row_2、....、Row_(my_old_size)が得られます。必要に応じて、上記のようにデータを文字列ではなく文字に変換する
ことができます。char(my_old_data(k,l)行名についても同様です。代わりにもう一度num2str使用できますchar()

行名の定義とデータの書き込みを分割して理解しやすくしましたが、時間の関連性のためにコードを実装して、データを 1 回だけループするようにしました。また、データを再度アドレス指定したい場合は、単に使用できます

my_new_matrix{m,n} 

そのセル内の引数を取得します。

于 2014-06-02T11:41:47.540 に答える