2017-06-23 8 views
0

作成したGUIテーブルの行にデータを追加しようとしていますが、ボタンを押すたびにデータが最初の行ではなく5行目に表示されます。 GUIでテーブルを作成すると、すでに4行あり、削除しようとしましたが、引き続き表示されます。Matlab GUIテーブル行

data = get(handles.uitable1, 'data'); 
k = size(data,1)+1; 

if k == 1 
    B = num2cell(data); 
else 
    B = data; 
end 

B{k,1} = xrange; 
B{k,2} = xmoment; 
B{k,3} = xmad; 
B{k,4} = xiqr; 
B{k,5} = xstd; 
B{k,6} = xvar; 

set(handles.uitable1, 'data', B); 

テーブルがすでに4行を持っているので、サイズは4になり、それが1で、私はボタンを押すたびにインクリメントされます。最初の行にデータを挿入してから通常通りインクリメントする方法はありますか? データがどのように挿入されているかは、下の画像で確認できます。 enter image description here

+0

データがすでにテーブルを持っている場合は、データが4行の 'NaN'値のセルであると思われます。すべてのNaN値を持つ最初の行を見つけて、それをkに使用してみてください。このために 'isnan'と' all'関数を使うことができます –

+0

[mcve]を見てください。 – excaza

答えて

1

問題は、テーブルの初期化です。あなたは空のテーブルをしたい場合は、GUI、function myGUI_OpeningFcn(hObject, eventdata, handles, varargin)のopening関数にこの行

set(handles.uitable1,'data',{}); 

を挿入します。

GUIDEのテーブルデータを空にしようとしているのは間違いです。

+0

ありがとうございます!しかし、私はすでにそれを考え出しました!空の作業領域変数をロードしましたが、今はすばらしく動作します!あなたの答えをもう一度ありがとう! –