matlab uitable でパターン値をドラッグできるかどうかを知りたいです。スプレッドシートで 1 ~ 50 の値を入力するには、1、2、3 と入力し、セルを選択してドラッグする必要があります。これはmatlab uitableで実行できますか? よろしく。
2 に答える
それはできます。しかし、Excelほど快適ではありません。
次のコードを少し試してみてください。必要に応じて改善したり変更したりできます。それはあなたにとって良い出発点だと思います。
function fancyTable
defaultData = randi(99,25,2);
h = figure('Position',[300 100 402 455],'numbertitle','off','MenuBar','none');
uitable(h,'Units','normalized','Position',[0 0 1 1],...
'Data', defaultData,...
'Tag','myTable',...
'ColumnName', [],'RowName',[],...
'ColumnWidth', {200 200},...
'CellSelectionCallback',@cellSelect);
end
function cellSelect(src,evt)
try
index = evt.Indices;
data = get(src,'Data');
L = size(index,1);
rows = index(:,1);
column = index(1,2);
start = data(rows(1),column);
newdata = start:(start+L-1);
data(rows,column) = newdata';
set(src,'Data',data);
end
end
次の 2 つの列を持つテーブルを作成します。
データを選択すると、最初の値に従って、目的のドラッグ パターンがすぐに適用されます。
コードは、対応する値に基づいて、選択の最初のポイントに増加する一連の値を挿入するだけです。最も難しい部分は、パターンを検出することです! start = data(rows(1),column);
3: の最小選択を必要とする可能性のある最初のデータ値を評価しましたstart = data(rows(1:3),column);
。説明のつかないケースをすべてスキップするには、多くのtry
/構造を扱う必要があるでしょう。catch
または、最初からswitch
/case
構造を使用して、選択の長さを評価し、パターンを評価します。
全体として、それは大変な作業であり、それだけの価値があるかどうかはわかりません。しかし、それは可能です。
uitable
テーブルに表示するデータ (通常は行列) を挿入します。したがって、Excel とは異なり、uitable
関数はデータを操作するためのツールではなく、単にデータを表示する形式です。詳細については、こちらを参照してください。ただし、1 から 10 まで実行するインスタンスの行を設定する場合は、次の手順を使用できます。
たとえば、サイズが 10x10 のマトリックスを表示したいとします。
A=magic(10);
t
このマトリックスを表示するテーブルを設定できるようになりました。
t=uitable('Data',A);
あなたの場合、行を1から10までにしたい場合は、A
データを含む行列を変更して、この行を保持するだけです
A(1,1:10)=1:10;
そして、前のコマンドを再実行して、テーブルを表示しますt
。