Table
テーブル UI コンポーネント

説明
テーブル UI コンポーネントには、アプリ内のデータの行と列が表示されます。Table オブジェクトを使用して、テーブルの作成後にテーブルの外観と動作を変更します。
作成
uitable 関数を使用してアプリでテーブルを作成します。
プロパティ
テーブル
テーブル データ。次のいずれかのタイプの配列として指定します。
table 配列 —
datetime、duration、categoricalなどのtable配列でサポートするデータ型の組み合わせを表示します。数値配列 —
doubleやsingleなどの数値を表示します。logical 配列 — チェック ボックスを表示します。
true値はオンのボックスを示し、false値はオフのボックスを示します。cell 配列 — 数値配列値、logical 配列値または文字配列値の任意の組み合わせを表示します。
string 配列 — 文字とテキストを表示します。
文字ベクトルの cell 配列 — 文字およびテキストを表示します。
ユーザーが編集可能なセルに無効なデータを入力したときに警告または NaN 値が表示されないようにするには、関数 CellEditCallback を記述してデータを適切な型に変換します。ユーザーがセルを編集すると、Data プロパティが更新されます。
table 配列の指定
Data プロパティを table 配列として指定できます。table 配列を使用すると、テーブル データを変数 MATLAB® として簡単に格納できます。table 配列を作成するのは、関数 table、関数 readtable、および関数 array2table です。一方、関数 uitable は、Table UI コンポーネント (アプリのユーザー インターフェイス コンポーネント) を作成します。
Table UI コンポーネントの Data プロパティを table 配列として指定すると、MATLAB では、次のように table 配列の値に基づいて Table UI コンポーネントの形式が自動的に設定されます。
既定では、アプリに表示される列名は、table 配列の
VariableNamesプロパティと一致します。TableUI コンポーネントのColumnNameプロパティを変更すると UI が更新されますが、table 配列の変数名は更新されません。既定では、アプリに表示される行名は、table 配列の
RowNameプロパティと一致します。TableUI コンポーネントのRowNameプロパティを変更すると UI が更新されますが、table 配列の行名は更新されません。各 table 配列変数のデータ型は、アプリ内の対応する列の形式を制御します。
ColumnFormatプロパティを設定しようとすると、MATLAB は警告を返します。
table 配列データの表示の詳細については、アプリ内での表形式データの書式設定を参照してください。
数値配列、logical 配列、cell 配列、string 配列、または文字ベクトルの cell 配列の指定
ColumnFormat プロパティを使用して、数値配列、logical 配列、cell 配列、string 配列、または文字ベクトルの cell 配列であるデータの形式を指定します。データを編集した結果、データのデータ型と ColumnFormat プロパティの値で不一致が生じた場合、MATLAB はデータを変換するか、警告を表示します。詳細については、ColumnFormat プロパティの説明を参照してください。
この プロパティ は読み取り専用です。
テーブルの現在の表示データ。table 配列、数値配列、logical 配列、cell 配列、string 配列、または文字ベクトルの cell 配列として返されます。
このプロパティは、ユーザーがテーブルの列の並べ替えまたは再配列を行ったか、セルを編集したかに基づいて可視化を更新する場合に使用します。
MATLAB は、テーブルの列の並べ替えまたは再配列が行われたか、セルが編集されたときに DisplayData を更新します。ユーザーが列の並べ替えや再配列を行っていない場合、DisplayData の内容は Data プロパティと同じになります。ユーザーがセルを編集すると、MATLAB は Data プロパティと DisplayData プロパティの両方を更新します。
例: Data と DisplayData の違い
何らかのデータと並べ替え可能な列をもつテーブル UI コンポーネントを作成します。次に、最初の列の値でテーブルを並べ替えます。
fig = uifigure; tbl = uitable(fig,Data=[4 9; 7 1; 2 3],ColumnSortable=true);

テーブルの Data プロパティと DisplayData プロパティをクエリします。Data プロパティは、テーブルが並べ替えられる前の元のテーブル データを返します。
tbl.Data
ans =
4 9
7 1
2 3DisplayData プロパティは、アプリに表示されているテーブル データを返します。
tbl.DisplayData
ans =
2 3
4 9
7 1列の見出し名。次の値のいずれかとして指定します。
'numbered'— 列見出しは1から始まる連続する番号です。文字ベクトルの cell 配列、string 配列または categorical 配列 — 配列の各要素は列の名前になります。1 行
n列の cell 配列を指定した場合、MATLAB はn行 1 列の cell 配列として値を格納して返します。m行n列の配列を指定した場合、MATLAB は配列を列ベクトルに変更します。列名内に垂直スラッシュ (|) を含めて、複数行の列名を指定します。たとえば、値'Telephone|Number'は "Telephone" と "Number" の語の間に改行文字を使用して列見出しを生成します。空の cell 配列 (
{}) — テーブルには列見出しがありません。空行列 (
[]) — テーブルには列見出しがありません。
プロパティ配列 Data の列数が配列 ColumnName の要素数と一致しない場合、結果のテーブルの列数は 2 つの値のうちの大きい方になります。
Data プロパティを table 配列として指定すると、既定の列名は table 配列の VariableNames プロパティと一致します。Table UI コンポーネントの ColumnName プロパティを変更すると UI が更新されますが、table 配列の変数名は更新されません。
例: uit = uitable(uifigure,'ColumnName',{'Name';'Number'},'Data',{'Bob',5})
例: uit = uitable(uifigure,'ColumnName',{'Name';[]},'Data',{'Bob',5})
テーブル列の幅。'auto'、'1x'、'fit'、または 1 行 n 列の文字ベクトル、string、および数値の cell 配列として指定します。
自動設定幅 —
'auto'を指定して、MATLAB が複数の要素を使用して自動的に列の幅を計算するようにします。その 1 つはColumnNameプロパティ値です。幅を内容に合わせる —
'fit'の値を指定して、列の幅を列名とデータに合わせるように厳密に調整するよう列を設定します。この設定では'auto'よりも狭い幅の列が許容されます。一様な幅 —
'1x'の値を指定して、使用できるスペースを等分してすべての列が同じ幅になるようにします。固定幅 — 列の幅をピクセル単位で定義する数値の cell 配列を指定します。
組み合わせ — cell 配列内で固定と可変の列幅を組み合わせることができます。cell 配列内の各要素はテーブル内の列に対応します。指定した cell 配列の値が列数よりも少ない場合、値が指定されていない列は既定値の
'auto'のままになります。配列の値が列数よりも多い場合、MATLAB は余分な値を無視します。重み付けされた可変幅 —
'x'に連結された数字から成る文字ベクトルまたは string ('2x'、'3x'など) をもつ cell 配列を指定します。それぞれの列の x 係数がその列の幅を、他の列に対する比率として設定します (UI テーブルの残りのスペースを考慮します)。
実行中のアプリでユーザーが対話的にテーブルの列をサイズ変更した場合、サイズ変更後の列幅は、その後に ColumnWidth プロパティを更新しても維持されます。
例: uit = uitable(uifigure,'ColumnWidth','auto','Data',[1 2 3;4 5 6])
例: uit = uitable(uifigure,'ColumnWidth','fit','Data',[1 2 3;4 5 6])
例: uit = uitable(uifigure,'ColumnWidth',{64,60,40},'Data',[1 2 3;4 5 6])
例: uit = uitable(uifigure,'ColumnWidth',{'2x','1x','1x'},'Data',[1 2 3;4 5 6])
例: uit = uitable(uifigure,'ColumnWidth',{64,"auto",40},'Data',[1 2 3;4 5 6])
例: uit = uitable(uifigure,'ColumnWidth',{'fit','1x','3x'},'Data',[1 2 3;4 5 6])
列セルを編集する機能。以下として指定します。
空の logical 配列 (
[]) — 列は編集できません。1 行
n列の logical 配列 — この配列は編集可能な列を指定します。nの値はテーブル内の列の数と等しくなります。配列内の各値はテーブルの列に対応します。配列の値がtrueの場合、その列のセルが編集可能になります。値がfalseの場合、その列内のセルが編集不可になります。配列の値が列数よりも多い場合、MATLAB は余った値を無視します。配列の値が列数よりも少ない場合、値が指定されていない列は編集不可になります。logical スカラー — テーブル全体が編集可能または編集不可のいずれかになります。
ユーザーがセルを編集すると、Data プロパティが更新されます。
例: uit = uitable(uifigure,'Data',rand(10,3),'ColumnEditable',[false true true])
例: uit = uitable(uifigure,'Data',rand(10,3),'ColumnEditable',false)
チェック ボックスやポップアップ メニューを含むテーブルの列でユーザーがコントロールを操作できるようにするには、ColumnEditable プロパティを true に設定します。
Data プロパティが table 配列である場合、duration など複数列の変数または編集不可のデータ型を含む変数は、ColumnEditable プロパティが true であっても、実行中のアプリで編集できません。cell 配列内に混在するデータ型を含む table 配列変数は、データ型が編集可能であれば実行中のアプリで編集できます。
列の並べ替えの可否。次のいずれかとして指定します。
空の logical 配列 (
[]) — すべての列が並べ替え不可になります。1 行
n列の logical 配列 — この配列は並べ替え可能な列を指定します。nの値はテーブル内の列の数と等しくなります。配列内の各値はテーブルの列に対応します。配列の値がtrueの場合、その列が並べ替え可能になります。値がfalseの場合、その列が並べ替え不可になります。配列の値が列数よりも多い場合、MATLAB は余った値を無視します。配列の値が列数よりも少ない場合、値が指定されていない列は並べ替え不可になります。logical スカラー — テーブル全体が並べ替え可能 (
true) または並べ替え不可 (false) のどちらかになります。
例: uit = uitable(uifigure,'Data',rand(3),'ColumnSortable',[true true false]);
例: uit = uitable(uifigure,'Data',rand(5),'ColumnSortable',true);
Data プロパティに、cell 配列データ、または cell 配列の列を含む table 配列データが含まれる場合、一様なデータ型をもつ列のみが、実行中のアプリで並べ替え可能になります。一様でないデータ型をもつ cell 配列の列は、ColumnSortable プロパティが true であっても、実行中のアプリで並べ替え不可になります。
テーブル列を再配列する機能。'on' または 'off'、もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off' の値は false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。
ColumnRearrangeable の値が 'on' の場合、アプリ ユーザーは列ヘッダーをクリックしてドラッグすることにより、テーブル列を並べ替えることができます。
アプリ内でテーブルの列を再配列しても、Data プロパティ配列の列には影響しません。
例: 再配列可能な列をもつテーブルの作成
UI figure ウィンドウに、再配列可能な列をもつテーブルを作成します。
fig = uifigure; uit = uitable(fig,"Data",magic(3),"ColumnRearrangeable",true);
1 列目と 2 列目を再配列するには、列 1 のヘッダーをクリックし、列 2 の右にその列をドラッグします。

テーブル UI コンポーネントの Data プロパティは変化しませんが、DisplayData プロパティは更新され、データはテーブル ビューで表示されているとおりの順番で保存されます。
tbl.Data
ans =
8 1 6
3 5 7
4 9 2
tbl.DisplayData
ans =
1 8 6
5 3 7
9 4 2
セルの表示形式。空の cell 配列または 1 行 n 列の文字ベクトルの cell 配列として指定します。
Data プロパティに table 配列が含まれる場合、このプロパティは設定しないでください。詳細については、アプリ内での表形式データの書式設定を参照してください。
このプロパティは、数値配列、logical 配列、cell 配列、string 配列、および文字ベクトルの cell 配列のデータ型の表示形式を設定します。cell 配列の要素は、Data プロパティ配列の列に対応します。特定の列の表示形式を指定しない場合は、その列に [] を指定します。列の形式を指定しない場合、MATLAB はセル内のデータのデータ型によって既定の表示を決定します。
cell 配列の要素は、次の表で説明する値のいずれかでなければなりません。
セル形式の値 | 説明 |
|---|---|
'char' | 左揃えの値を表示します。プロパティ配列 セルを編集するには、テキストを入力して既存の値を置き換えます。 |
'logical' | 中央揃えのチェック ボックスを表示します。対応する セルを編集するには、チェック ボックスをオンまたはオフにします。その後、MATLAB は対応する |
'numeric' | 数値データのコマンド ウィンドウの表示と等しい右揃えの値を表示します。プロパティ配列 セルを編集するには、テキストを入力します。 ユーザーが |
1 行 n 列の文字ベクトルの cell 配列 ({'one','two','three'} など) | 編集可能な列でポップアップ メニューを表示します。 セルを編集するには、ポップアップ メニューから項目を選択するか、テキストを入力して新しい項目を作成します。MATLAB は選択されたメニュー項目に対応するプロパティ配列 |
関数 | 指定された形式を使用して、 |
ポップアップ メニューの ColumnFormat の効果と各種データ型
ColumnFormat 値がポップアップ メニューを定義している場合、初期の Data 値はそのメニュー内のオプションのいずれかである必要はありません。ユーザーが異なる選択を行うまで、初期の Data 値が表示されます。
たとえば、特定の列のすべての行で Data プロパティの値が 'Choose' であり、ColumnFormat の値で 'group 1' および 'group 2' の選択肢をもつポップアップ メニューを指定するとします。MATLAB がテーブルを作成すると、これらのテーブル セルはユーザーがポップアップ メニューの項目を選択するまで 'Choose' を表示します。
fig = uifigure;
myData = {'Andrew' 31 'Male' 'Choose'; ...
'Bob' 41 'Male' 'Choose'; ...
'Anne' 20 'Female' 'Choose'};
uit = uitable(fig, ...
"Position", [100 150 380 100], ...
"ColumnFormat",{[] [] [] {'group 1' 'group 2'}}, ...
"ColumnEditable",true, ...
"Data",myData);
編集可能な列のデータ表示
次の表で、各種データ型が特定の ColumnFormat 値でどのように表示されるかを説明します。
| ColumnFormat | ||||
'numeric' | 'char' | 'logical' | ||
| データ配列値のデータ型 | 任意の数値型 | テーブルは数値をそのまま表示します。 | MATLAB は値をテキストに変換し、テーブルに左揃えで表示します。MATLAB が値を変換できない場合は、NaN が表示されます。 | 推奨されません。MATLAB は、関数 CellEditCallback を定義しない限り、ユーザーがセルを編集するときに警告を返します。 |
char | テーブルには、値が数値であるかのように、右揃えで表示されます。 | テーブルは、値をそのまま表示します。 | 推奨されません。MATLAB は、関数 CellEditCallback を定義しない限り、ユーザーがセルを編集するときに警告を返します。 | |
logical | テーブルは論理値を数値として表示します。MATLAB は、関数 CellEditCallback を定義しない限り、ユーザーがセルを編集するときに警告を返します。 | テーブルは論理値を左揃えの 'true' または 'false' として表示します。MATLAB は、関数 CellEditCallback を定義しない限り、ユーザーがセルを編集するときに警告を返します。 | テーブルはチェック ボックスとして論理値を表示します。 | |
行の名前。次の値のいずれかとして指定します。
'numbered'— 行の見出しは1から始まる連続する番号です。文字ベクトルの cell 配列、string 配列または categorical 配列 — 配列の各要素は行の名前になります。行名は 1 行のテキストに制限されます。1 行
n列の cell 配列を指定した場合、MATLAB はn行 1 列の cell 配列として値を格納して返します。m行n列の配列を指定した場合、MATLAB は配列を列ベクトルに変更します。空の cell 配列 (
{}) — テーブルには行見出しがありません。空行列 (
[]) — テーブルには行見出しがありません。
プロパティ配列 Data の行数が配列 RowName の要素数と一致しない場合、結果のテーブルの行数は Data プロパティの行数になります。
Data プロパティを table 配列として指定すると、既定の行名は table 配列の RowName プロパティと一致します。テーブル UI コンポーネントの RowName プロパティを変更すると UI が更新されますが、table 配列の行名は更新されません。
例: uit = uitable(uifigure,"RowName",{'Name';'Number'},"Data",{'Bob';5})
例: uit = uitable(uifigure,"RowName",{'Name';[]},'Data',{'Bob';5})
フォント
フォント名。システムでサポートされているフォント名として指定します。既定のフォントは、特定のオペレーティング システムとロケールによって異なります。
指定したフォントが利用できない場合、MATLAB は、アプリが実行中のシステムで利用可能なフォントから最もよく一致するフォントを使用します。
例: 'Arial'
フォント サイズ。正の数値として指定します。測定単位はピクセルです。既定のフォント サイズは、特定のオペレーティング システムとロケールによって異なります。
例: 14
フォントの太さ。次のいずれかの値として指定します。
'normal'— 各フォントで定義されている既定の太さ'bold'—'normal'よりも太い文字
すべてのフォントに太字フォントがあるとは限りません。太字がないフォントの場合、'bold' を指定すると標準フォントの太さになります。
フォントの角度。'normal' または 'italic' として指定します。すべてのフォントにイタリックのフォントの角度があるわけではありません。イタリックがないフォントの場合、'italic' を指定すると標準フォントの角度になります。
フォントの測定単位。次の表のいずれかの値として指定します。
| 単位の値 | 説明 |
|---|---|
'pixels' | Windows® システムおよび Macintosh システムでは、ピクセルのサイズは 1/96 インチです。このサイズはシステムの解像度に依存しません。 Linux® システムでは、ピクセルのサイズは使用しているシステムの解像度によって決まります。 この値は、 |
'points' | 1 ポイントは 1/72 インチです。 この値は、 |
'normalized' | フォント サイズを高さの割合として指定する、正規化された値。UI コンポーネントのサイズを変更するときに、MATLAB はその割合を維持して、表示されるフォントをスケーリングします。 |
'inches' | インチ。 |
'centimeters' | センチメートル。 |
対話機能
可視性の状態。'on' または 'off' として指定するか、数値または logical の 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off' の値は false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。
'on'— オブジェクトを表示します。'off'— オブジェクトを削除せずに非表示にします。非表示の UI コンポーネントのプロパティには引き続きアクセスできます。
アプリの起動を高速化するには、起動時に表示する必要のないすべての UI コンポーネントの Visible プロパティを 'off' に設定します。
テーブルの選択。正の整数、正の整数のベクトル、または n 行 2 列の正の整数の配列として指定します。プログラムでテーブルの選択を設定したり、アプリ ユーザーが選択したテーブル要素をクエリしたりするには、このプロパティを使用します。指定可能な値の型は、SelectionType プロパティと Multiselect プロパティの値によって異なります。
SelectionType | Multiselect | サポートされている値 | 例 | 結果 |
|---|---|---|---|---|
'row' | 'on' | 正の整数のベクトル | [1 3 4 8] | 対応する行インデックスをもつすべての行を選択します。 |
'off' | 正の整数 | 6 | 対応する行インデックスをもつ行を選択します。 | |
'column' | 'on' | 正の整数のベクトル | [2 5 7] | 対応する列インデックスをもつすべての列を選択します。 |
'off' | 正の整数 | 2 | 対応する列インデックスをもつ列を選択します。 | |
'cell' | 'on' | n 行 2 列の正の整数の配列 | [1 1; 3 4; 4 2] | 対応する行と列の添字をもつすべてのセルを選択します。 |
'off' | 1 行 2 列の正の整数の配列 | [3 2] | 対応する行と列の添字をもつセルを選択します。 |
SelectionType が 'row' または 'column' で、MultiSelect が 'on' の場合、Selection は行ベクトルまたは列ベクトルとして指定できます。ただし、MATLAB は値を行ベクトルに変換して格納します。
Selection と DisplaySelection の違い
Selection プロパティと DisplaySelection プロパティはどちらも選択されたセルのインデックスを返しますが、これらのインデックスはテーブル データの異なる構成に対応しており、異なる目的で使用することができます。
Selection—Dataプロパティに対応する、選択したセルのインデックスを設定またはクエリします。たとえば、Selectionを使用して、ユーザーが選択したデータに対して計算を実行したり、選択したデータのスタイルを更新したりします。DisplaySelection—DisplayDataプロパティに対応する、選択したセルのインデックスをクエリします。たとえば、DisplaySelectionを使用して、アプリにテーブル データが表示される順序で、選択したデータを抽出します。
ユーザーがテーブルの列の並べ替えや再配列を行っていない場合、2 つのプロパティは同じ値になります。
たとえば、何らかのデータと並べ替え可能な列をもつテーブル UI コンポーネントを作成します。次に、最初の列の値でテーブルを並べ替えて、並べ替えられたテーブルの最初の行を選択します。
fig = uifigure; tbl = uitable(fig,Data=[4 9; 7 1; 2 3],ColumnSortable=true);

テーブルの Selection プロパティと DisplaySelection プロパティをクエリします。Selection プロパティは、元のテーブル データ内の選択されたセルのインデックスを返します。
tbl.Selection
ans =
3 1
3 2DisplaySelection プロパティは、表示されているテーブル データの選択されたセルのインデックスを返します。
tbl.DisplaySelection
ans =
1 1
1 2この プロパティ は読み取り専用です。
現在の表示でのテーブルの選択。正の整数、正の整数のベクトル、または n 行 2 列の正の整数の配列として返されます。アプリ ユーザーが選択したテーブル要素を、現在のテーブル表示のとおりにクエリするには、このプロパティを使用します。
DisplaySelection が返す値の型は、SelectionType プロパティと Multiselect プロパティの値によって異なります。
SelectionType | Multiselect | 値 | 例 |
|---|---|---|---|
'row' | 'on' | 現在の表示で選択されている行のインデックス。正の整数の行ベクトルとして返されます。 | [1 3 4 8] |
'off' | 現在のディスプレイで選択されている行のインデックス。正の整数として返されます。 | 6 | |
'column' | 'on' | 現在の表示で選択されている列のインデックス。正の整数の行ベクトルとして返されます。 | [2 5 7] |
'off' | 現在の表示で選択されている列のインデックス。正の整数として返されます。 | 2 | |
'cell' | 'on' | 現在の表示で選択されているセルの行および列の添字。n 行 2 列の正の整数の配列として返されます。 | [1 1; 3 4; 4 2] |
'off' | 現在の表示で選択されているセルの行および列の添字。1 行 2 列の正の整数の配列として返されます。 | [3 2] |
Selection と DisplaySelection の違い
Selection プロパティと DisplaySelection プロパティはどちらも選択されたセルのインデックスを返しますが、これらのインデックスはテーブル データの異なる構成に対応しており、異なる目的で使用することができます。
Selection—Dataプロパティに対応する、選択したセルのインデックスを設定またはクエリします。たとえば、Selectionを使用して、ユーザーが選択したデータに対して計算を実行したり、選択したデータのスタイルを更新したりします。DisplaySelection—DisplayDataプロパティに対応する、選択したセルのインデックスをクエリします。たとえば、DisplaySelectionを使用して、アプリにテーブル データが表示される順序で、選択したデータを抽出します。
ユーザーがテーブルの列の並べ替えや再配列を行っていない場合、2 つのプロパティは同じ値になります。
たとえば、何らかのデータと並べ替え可能な列をもつテーブル UI コンポーネントを作成します。次に、最初の列の値でテーブルを並べ替えて、並べ替えられたテーブルの最初の行を選択します。
fig = uifigure; tbl = uitable(fig,Data=[4 9; 7 1; 2 3],ColumnSortable=true);

テーブルの Selection プロパティと DisplaySelection プロパティをクエリします。Selection プロパティは、Data プロパティを使用して指定した元のテーブル データ内の選択されたセルのインデックスを返します。
tbl.Selection
ans =
3 1
3 2DisplaySelection プロパティは、表示されているテーブル データの選択されたセルのインデックスを返します。
tbl.DisplaySelection
ans =
1 1
1 2テーブルの選択タイプ。'cell'、'row'、または 'column' として指定します。テーブルの選択タイプでは、ユーザーがテーブルを操作したときに MATLAB によって選択されるテーブル要素を指定します。たとえば、SelectionType が 'row' の場合に、アプリ ユーザーがテーブルの 2 行目にあるセルをクリックすると、2 行目全体が選択されます。
複数の要素の選択。'on' または 'off'、もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off' の値は false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は、matlab.lang.OnOffSwitchState 型の on/off の logical 値として保存されます。
テーブルの操作可能状態。'on'、'off' または 'inactive' として指定します。Enable プロパティは、UI コンポーネントがボタンのクリックに応答するかどうかを制御します。以下の 3 つのうちいずれかの値をとります。
'on'– UI コンポーネントは操作可能です。'off'– UI コンポーネントは操作不可で、グレー表示されます。'inactive'– UI コンポーネントは操作不可ですが、Enableが'on'であるときと同じ外観になります。
Enable プロパティの値とボタン クリックのタイプによって UI の応答方法が決定します。
| Enable の値 | 左クリックの応答 | 右クリックの応答 |
|---|---|---|
'on' | 関数 |
|
'off' または 'inactive' |
|
|
ツールヒント。文字ベクトル、文字ベクトルの cell 配列、string 配列、または 1 次元の categorical 配列として指定します。このプロパティを使用して、実行時にユーザーがポインターをコンポーネントに合わせるとメッセージが表示されるようにします。コンポーネントが無効になっている場合でも、ツールヒントは表示されます。複数行のテキストを表示するには、文字ベクトルの cell 配列または string 配列を指定します。配列の各要素は、テキストの各行になります。このプロパティを categorical 配列として指定した場合、MATLAB はカテゴリの完全なセットではなく、配列内の値を使用します。
コンテキスト メニュー。関数 uicontextmenu を使用して作成された ContextMenu オブジェクトとして指定します。このプロパティは、コンポーネントを右クリックしたときにコンテキスト メニューを表示するために使用します。
色とスタイル
セル テキストの色。RGB 3 成分、16 進数カラー コード、または表にリストされた色オプションのいずれかとして指定します。ForegroundColor プロパティを使用してセルのテキストの色を設定すると、テーブル UI コンポーネントのすべてのセルに適用されます。
RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。
RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は
[0,1]の範囲でなければなりません。たとえば[0.4 0.6 0.7]のようになります。16 進数カラー コードは、ハッシュ記号 (
#) で始まり、3 桁または 6 桁の0からFまでの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。この値は大文字と小文字を区別しません。したがって、カラー コード"#FF8800"、"#ff8800"、"#F80"、および"#f80"は等価です。
あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。
| 色名 | 省略名 | RGB 3 成分 | 16 進数カラー コード | 外観 |
|---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" |
|
"green" | "g" | [0 1 0] | "#00FF00" |
|
"blue" | "b" | [0 0 1] | "#0000FF" |
|
"cyan" | "c" | [0 1 1] | "#00FFFF" |
|
"magenta" | "m" | [1 0 1] | "#FF00FF" |
|
"yellow" | "y" | [1 1 0] | "#FFFF00" |
|
"black" | "k" | [0 0 0] | "#000000" |
|
"white" | "w" | [1 1 1] | "#FFFFFF" |
|
次の表に、ライト テーマとダーク テーマでのプロットの既定のカラー パレットを示します。
| パレット | パレットの色 |
|---|---|
R2025a より前: ほとんどのプロットで、これらの色が既定で使用されます。 |
|
|
|
orderedcolors 関数と rgb2hex 関数を使用すると、これらのパレットの RGB 3 成分および 16 進数カラー コードを取得できます。たとえば、"gem" パレットの RGB 3 成分を取得し、16 進数カラー コードに変換します。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);R2023b より前: RGB = get(groot,"FactoryAxesColorOrder") を使用して、RGB 3 成分を取得します。
R2024a より前: H = compose("#%02X%02X%02X",round(RGB*255)) を使用して、16 進数カラー コードを取得します。
テーブルの背景色。RGB 3 成分、16 進数カラー コード、色名、省略名、またはカラー値の行列として指定します。
テーブルの行のシェーディングに m 色の反復パターンを使用する場合、m 行のカラー値の行列を指定します。MATLAB は、RowStriping プロパティが 'on' の場合に行列の行を使用します。テーブルの背景は、RowStriping が 'on' で、かつ BackgroundColor が複数の行をもつ行列である場合を除き、縞模様になりません。
RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。
RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は
[0,1]の範囲でなければなりません。たとえば[0.4 0.6 0.7]のようになります。16 進数カラー コードは、ハッシュ記号 (
#) で始まり、3 桁または 6 桁の0からFまでの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。この値は大文字と小文字を区別しません。したがって、カラー コード"#FF8800"、"#ff8800"、"#F80"、および"#f80"は等価です。
あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。
| 色名 | 省略名 | RGB 3 成分 | 16 進数カラー コード | 外観 |
|---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" |
|
"green" | "g" | [0 1 0] | "#00FF00" |
|
"blue" | "b" | [0 0 1] | "#0000FF" |
|
"cyan" | "c" | [0 1 1] | "#00FFFF" |
|
"magenta" | "m" | [1 0 1] | "#FF00FF" |
|
"yellow" | "y" | [1 1 0] | "#FFFF00" |
|
"black" | "k" | [0 0 0] | "#000000" |
|
"white" | "w" | [1 1 1] | "#FFFFFF" |
|
次の表に、ライト テーマとダーク テーマでのプロットの既定のカラー パレットを示します。
| パレット | パレットの色 |
|---|---|
R2025a より前: ほとんどのプロットで、これらの色が既定で使用されます。 |
|
|
|
orderedcolors 関数と rgb2hex 関数を使用すると、これらのパレットの RGB 3 成分および 16 進数カラー コードを取得できます。たとえば、"gem" パレットの RGB 3 成分を取得し、16 進数カラー コードに変換します。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);R2023b より前: RGB = get(groot,"FactoryAxesColorOrder") を使用して、RGB 3 成分を取得します。
R2024a より前: H = compose("#%02X%02X%02X",round(RGB*255)) を使用して、16 進数カラー コードを取得します。
例: uitable(uifigure,"Data",rand(10,3),"BackgroundColor",[0 0 1]) は、背景色が青のテーブルを作成します。
例: uitable(uifigure,"Data",rand(10,3),"BackgroundColor","r") は、背景色が赤のテーブルを作成します。
例: uitable(uifigure,"Data",rand(10,3),"BackgroundColor",["#FF0000"; "#0000FF"]) は、赤の行と青の行が交互に並んだ縞模様のテーブルを作成します。
例: uitable(uifigure,"Data",rand(10,3),"BackgroundColor",[0 1 0; 0 0 1]) は、緑の行と青の行が交互に並んだ縞模様のテーブルを作成します。
1 行おきの網掛け。'on' または 'off'、もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off' の値は false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。
このプロパティはテーブルの行の網掛けパターンを制御します。RowStriping 値が 'on' に設定されている場合、BackgroundColor 行列は反復パターンとして表示される行の色を指定します。BackgroundColor 行列に 1 行しかない場合は、網掛けはすべてのテーブル行で同じになります。
RowStriping が 'off' に設定されている場合、BackgroundColor 行列の最初の色はテーブルのすべての行の網掛けを定義します。
この プロパティ は読み取り専用です。
関数 uistyle を使用して作成されて追加されたスタイルの構成。n 行 3 列の table 配列として返されます。table 配列の各行は、テーブル UI コンポーネントに現在適用されているスタイルに対応します。引き続き追加されたスタイルには、スタイル順序番号 n+1 が付与されます。Target 列と TargetIndex 列は、スタイルが追加されたテーブル UI コンポーネントの部分を示します。Style 列は、スタイルのクラス名を示します。
関数 removeStyle を使用してテーブル UI コンポーネントからスタイルを削除する場合に、このプロパティを使用します。
例: スタイルの削除
まず、3 つのスタイルをテーブル UI コンポーネントに追加します。
s1 = uistyle("BackgroundColor","yellow"); s2 = uistyle("BackgroundColor","red"); s3 = uistyle("FontColor","b","FontWeight","bold"); fig = uifigure; fig.Position = [100 100 520 220]; uit = uitable(fig); uit.Data = rand(5); uit.Position = [20 30 480 135]; addStyle(uit,s1,"row",[1 2 4 5]); addStyle(uit,s2,"cell",[2 1; 4 2; 1 3; 1 5]) addStyle(uit,s3,"column",2);

uit.StyleConfigurations をクエリすると、3 行 3 列の table 配列が返されます。最初に行スタイルがテーブル UI コンポーネントに追加されるため、行スタイルのスタイル順序番号は 1 です。行スタイルの TargetIndex 値 {1×4 double} は、スタイルの追加時に 4 行が指定されたことを示します。同様に、2 番目のスタイルがテーブルの 4 つのセルに追加されています。3 番目のスタイルは 2 番目の列に追加されています。
uit.StyleConfigurations
ans =
3×3 table
Target TargetIndex Style
______ ____________ ___________________________
1 row {1×4 double} [1×1 matlab.ui.style.Style]
2 cell {4×2 double} [1×1 matlab.ui.style.Style]
3 column {[ 2]} [1×1 matlab.ui.style.Style]スタイル順序番号 2 を指定して、テーブルに追加された 2 番目のスタイルを削除します。テーブル UI コンポーネントがどのように更新されるかがわかります。
removeStyle(uit,2)

位置
テーブルの位置とサイズ。[left bottom width height] の形式の 4 要素ベクトルとして指定します。次の表で、ベクトルの各要素について説明します。
| 要素 | 説明 |
|---|---|
left | 親コンテナーの内側左端からテーブルの外側左端までの距離 |
bottom | 親コンテナーの内側下端からテーブルの外側下端までの距離 |
width | テーブルの外側の右端と左端の間の距離 |
height | テーブルの外側の上端と下端の間の距離 |
すべての測定値は、Units プロパティで指定した単位で表されます。
Position の値の基準は、親コンテナーの "描画可能領域" です。描画可能領域は、コンテナーの境界線の内側にある領域で、メニュー バーやタイトルなどの装飾が占める領域は含まれません。
テーブルの位置とサイズ。[left bottom width height] の形式の 4 要素ベクトルとして指定します。すべての測定値は、Units プロパティで指定した単位で表されます。
このプロパティ値は、Position プロパティ値および OuterPosition プロパティ値と同一です。
テーブルの位置とサイズ。[left bottom width height] の形式の 4 要素ベクトルとして指定します。すべての測定値は、Units プロパティで指定した単位で表されます。
このプロパティ値は、Position プロパティ値および InnerPosition プロパティ値と同一です。
測定の単位。次の表のいずれかの値として指定します。
| 単位の値 | 説明 |
|---|---|
'pixels' (既定) | Windows システムおよび Macintosh システムでは、ピクセルのサイズは 1/96 インチです。このサイズはシステムの解像度に依存しません。 Linux システムでは、ピクセルのサイズは使用しているシステムの解像度によって決まります。 |
'normalized' | これらの単位は親コンテナーを基準として正規化されます。コンテナーの左下隅が |
'inches' | インチ。 |
'centimeters' | センチメートル。 |
'points' | ポイント。1 ポイントは 1/72 インチです。 |
'characters' | これらの単位は、グラフィックス ルート オブジェクトの既定の uicontrol フォントを基にしています。
既定の uicontrol フォントにアクセスするには、 |
MATLAB のほとんどのアプリ作成機能では距離をピクセル単位で測定するため、推奨値は 'pixels' です。親コンテナーのサイズに基づいて再スケーリングされるテーブルを作成するには、関数 uigridlayout を使用して作成されたグリッド レイアウト マネージャーをテーブルの親にします。詳細については、プログラミングによるアプリのレイアウトを参照してください。
レイアウト オプション。GridLayoutOptions オブジェクトとして指定します。このプロパティは、グリッド レイアウト コンテナーの子であるコンポーネントのオプションを指定します。コンポーネントがグリッド レイアウト コンテナーの子ではない場合 (たとえば、Figure またはパネルの子である場合) は、このプロパティは空で、効果はありません。しかし、コンポーネントがグリッド レイアウト コンテナーの子である場合は、GridLayoutOptions オブジェクトの Row プロパティおよび Column プロパティを設定して、グリッドの目的の行と列にコンポーネントを配置することができます。
たとえば、次のコードはテーブル UI コンポーネントを親グリッドの 3 行目の 2 列目に配置します。
g = uigridlayout([4 3]);
uit = uitable(g,'Data',rand(10,3));
uit.Layout.Row = 3;
uit.Layout.Column = 2;テーブルが複数の行または列にまたがるようにするには、Row プロパティまたは Column プロパティを 2 要素ベクトルとして指定します。たとえば、次のテーブルは列 2 と列 3 にまたがっています。
uit.Layout.Column = [2 3];
コールバック
セル編集コールバック関数。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
このコールバック関数を使用して、アプリ ユーザーがテーブル セルのコンテンツを変更したときの計算や入力の検証を実行できます。
このコールバック関数は、ユーザーのセルの操作に関する特定の情報 (セルのインデックスなど) にアクセスできます。MATLAB は、この情報を CellEditData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.Indices は選択されたセルのインデックスを返します。CellEditData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。
次の表に、CellEditData オブジェクトのプロパティを示します。
プロパティ | 説明 |
|---|---|
Indices | これは、実行中のアプリでユーザーが編集したセルの行および列のインデックスを含む 1 行 2 列の配列です。列が並べ替えられている場合、 |
DisplayIndices | これは並べ替え後のテーブルにおける編集されたセルの表示位置に対応する行および列のインデックスを含む 1 行 2 列の配列です。ユーザーが列を並べ替えていない場合、 |
PreviousData | これは前のセル データです。既定の設定は、空行列 |
EditData | これはユーザーが入力した値です。 |
NewData | これは、MATLAB がプロパティ配列 MATLAB がユーザー入力データでエラーを検出した場合、 |
Error | これは、MATLAB がユーザー入力データでエラーを検出した場合に返されるエラー メッセージです。 MATLAB が
|
Source | コールバックを実行するコンポーネント。 |
EventName |
|
ユーザーがテーブルのセルを編集すると、MATLAB は以下の手順を実行します。
新しい値をテーブルの
Dataプロパティに保存しようとします。関数
CellEditCallback(存在する場合) を呼び出します。
値が結果としてエラーになり、関数 CellEditCallback が存在しない場合、セル データは以前の値に戻され、エラーは表示されません。
コールバックの記述の詳細については、App Designer のコールバックを参照してください。
選択変更コールバック。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
このコールバック関数を使用して、アプリ ユーザーがテーブル内で別のセル、行、または列を選択したときにコマンドを実行します。
このコールバック関数は、ユーザーのテーブル操作 (選択した要素など) に関する特定の情報にアクセスできます。MATLAB は、この情報を TableSelectionChangedData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、この引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.Selection は選択されたセル、行、または列のインデックスを返します。TableSelectionChangedData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。
次の表に、TableSelectionChangedData オブジェクトのプロパティを示します。
プロパティ | 説明 |
|---|---|
Selection | 実行中のアプリでユーザーが選択した要素のインデックスを含む配列。 列が並べ替えられている場合、 |
PreviousSelection | 前に選択されていたテーブル データのセル、行、または列のインデックスを含む配列。 |
SelectionType |
|
DisplaySelection | 並べ替え後のテーブルにおける選択された要素の表示位置に対応するセル、行、または列のインデックスを含む配列。ユーザーがテーブルを並べ替えていない場合、 |
PreviousDisplaySelection | 並べ替え後のテーブルにおける前に選択されていた要素の表示位置に対応するセル、行、または列のインデックスを含む配列。ユーザーがテーブルを並べ替えていない場合、 |
Source | コールバックを実行するコンポーネント。 |
EventName |
|
コールバックの記述の詳細については、App Designer のコールバックを参照してください。
ユーザーが、クリックするか、矢印キーを使用するか、次のいずれかのキーボード ショートカットを使用してテーブルの選択を変更すると、テーブルで SelectionChangedFcn コールバックが実行されます。
連続している場合の選択オプションは次のとおりです。
セルをクリックしてドラッグします。
いずれかのセルをクリックしてから、Shift を押しながら別のセルをクリックすると、間にあるすべてのセルが選択されます。
いずれかのセルをクリックしてから、Shift を押しながら矢印キーを押すと、連続するセルが追加されます。
行または列の見出しをクリックすると、行全体または列全体が選択されます。
セルをクリックしてから、Ctrl を押しながらスペース バーを押すと、その列のすべてのセルが選択されます (表示されていないセルもすべて含まれます)。
セルをクリックしてから、Shift を押しながらスペース バーを押すと、その行のすべてのセルが選択されます (表示されていないセルもすべて含まれます)。
行または列を選択します。その後、Shift を押しながら別の行または列の見出しをクリックすると、間にあるすべての行または列が選択されます。
いずれかのセルをクリックしてから、Shift+PageUp または Shift+PageDown を押すと、そのセルの上または下に表示されているすべてのセルが選択されます。
Ctrl+A を押すと、テーブル内のすべてのセルが選択されます。
連続していない場合の選択オプションは次のとおりです。
セルまたはセルのグループを選択します。その後、Ctrl キーを押しながら連続していないセル、行、または列をクリックして選択または選択解除します。
表示データが変更されたときのコールバック。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
このコールバックは、DisplayData が変化すると実行されます。これは、アプリ ユーザーが次のいずれかの操作を行った場合に発生します。
セルの編集
テーブルの列の並べ替え
テーブルの列の再配列
DisplayData が変化する原因となったユーザー操作に関する情報が必要な場合に、このコールバックを使用します。編集されたセルに関する特定の情報が必要な場合は、代わりに CellEditCallback を作成します。
このコールバック関数は、列の並べ替えまたは再配列が行われたか、セルが編集されたかに関する特定の情報にアクセスできます。MATLAB は、この情報を DisplayDataChangedData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.InteractionColumn は、Data で操作された列のインデックスを返します。DisplayDataChangedData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。
| プロパティ | 説明 |
|---|---|
DisplayRowName | 並べ替え後の表示における RowName プロパティの値の cell 配列。DisplayRowName は、常に元の RowName プロパティの置換になります。 |
DisplayColumnName | 並べ替え後の表示における ColumnName プロパティの値の cell 配列。DisplayColumnName は、常に元の ColumnName プロパティの置換になります。 |
Interaction | コールバックをトリガーしたユーザーの操作。'sort'、'edit'、または 'rearrange' として指定されます。 |
InteractionColumn | Data 内で変更された列のインデックス。 |
InteractionDisplayColumn | DisplayData 内で変更された列のインデックス。 |
InteractionVariable | 変更された列の table 配列データの VariableNames プロパティ。Data に table 配列以外のデータ型が含まれている場合、InteractionVariable は空の文字配列を返します。 |
DisplaySelection | 並べ替え後のテーブルにおける選択された要素の表示位置に対応するセル、行、または列のインデックスを含む配列。 |
PreviousDisplaySelection | 並べ替え後のテーブルにおける前に選択されていた要素の表示位置に対応するセル、行、または列のインデックスを含む配列。 |
Source | コールバックを実行するコンポーネント。 |
EventName |
|
コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer のコールバックを参照してください。
クリックしたときの関数。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
このコールバック関数は、ユーザーがテーブル UI コンポーネント内の任意の位置をクリックしたときに実行されます。
このコールバック関数は、ユーザーのテーブル操作に関する特定の情報にアクセスできます。MATLAB は、この情報を ClickedData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.InteractionInformation は、ユーザーがクリックしたテーブル内の位置に関する情報を返します。ClickedData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。
次の表は、ClickedData オブジェクトのプロパティを示しています。
| プロパティ | 値 |
|---|---|
InteractionInformation | アプリ ユーザーがクリックしたコンポーネント内の位置に関する情報。この情報は、次のプロパティをもつオブジェクトとして保存されます。
ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、 |
Source | コールバックを実行するコンポーネント |
EventName | 'Clicked' |
次の表に、テーブル UI コンポーネントに関連付けられている InteractionInformation オブジェクトのプロパティを示します。
| プロパティ | 値 |
|---|---|
DisplayRow | ユーザーのクリック位置に視覚的に表示されているテーブルの行。スカラーとして返されます。 ユーザーがテーブルを並べ替えていない場合、 |
DisplayColumn | ユーザーのクリック位置に視覚的に表示されているテーブルの列。スカラーとして返されます。 ユーザーがテーブルを再配列していない場合、 |
Row | ユーザーのクリック位置に対応する元のテーブル データの行。スカラーとして返されます。 ユーザーがテーブルを並べ替えていない場合、 |
Column | ユーザーのクリック位置に対応する元のテーブル データの列。スカラーとして返されます。 ユーザーがテーブルを再配列していない場合、 |
RowHeader | ユーザーがテーブルの行ヘッダーをクリックしたかどうか。logical の 0 (false) または 1 (true) として返されます。 |
ColumnHeader | ユーザーがテーブルの列ヘッダーをクリックしたかどうか。logical の 0 (false) または 1 (true) として返されます。 |
Location | テーブルの親コンテナーの左下隅を基準とした、ユーザーのクリック位置。
|
ScreenLocation | プライマリ ディスプレイの左下隅を基準とした、ユーザーのクリック位置。
|
コールバックの記述の詳細については、App Designer のコールバックを参照してください。
例: テーブル セルがクリックされたときの背景色の選択
何らかのデータをもつテーブル UI コンポーネントを作成します。ユーザーがテーブルをクリックしたときに実行される、colorCells という名前の ClickedFcn コールバック関数を指定します。関数 colorCells 内で次を行います。
event.InteractionInformationオブジェクトを使用して、ユーザーがセルをクリックしたかどうかに関する情報にアクセスします。ユーザーが (ヘッダーや空白の領域ではなく) セルをクリックした場合、ユーザーが背景色を選択するためのカラー ピッカーを開きます。
選択した色を使用して
Styleオブジェクトを作成し、それをテーブル セルに追加します。キーボードのフォーカスをテーブル UI コンポーネントに戻します。
この例を試すには、次のコードを新しいスクリプトに保存して、実行します。テーブル内のセルをクリックし、そのセルの背景色を選択します。
fig = uifigure; t = uitable(fig); t.Data = rand(5); t.ClickedFcn = @colorCells; function colorCells(src,event) r = event.InteractionInformation.Row; c = event.InteractionInformation.Column; if ~isempty(r) && ~isempty(c) removeStyle(src) color = uisetcolor; s = uistyle(BackgroundColor=color); addStyle(src,s,"cell",[r c]); focus(src) end end
ダブルクリックしたときのコールバック。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
このコールバック関数は、ユーザーがテーブル UI コンポーネント内の任意の位置をダブルクリックしたときに実行されます。
このコールバック関数は、ユーザーのテーブル操作に関する特定の情報にアクセスできます。MATLAB は、この情報を DoubleClickedData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.InteractionInformation は、ユーザーがダブルクリックしたテーブル内の位置に関する情報を返します。DoubleClickedData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。
次の表は、DoubleClickedData オブジェクトのプロパティを示しています。
| プロパティ | 値 |
|---|---|
InteractionInformation | アプリ ユーザーがダブルクリックしたコンポーネント内の位置に関する情報。この情報は、次のプロパティをもつオブジェクトとして保存されます。
ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、 |
Source | コールバックを実行するコンポーネント |
EventName | 'DoubleClicked' |
次の表に、テーブル UI コンポーネントに関連付けられている InteractionInformation オブジェクトのプロパティを示します。
| プロパティ | 値 |
|---|---|
DisplayRow | ユーザーのダブルクリック位置に視覚的に表示されているテーブルの行。スカラーとして返されます。 ユーザーがテーブルを並べ替えていない場合、 |
DisplayColumn | ユーザーのダブルクリック位置に視覚的に表示されているテーブルの列。スカラーとして返されます。 ユーザーがテーブルを再配列していない場合、 |
Row | ユーザーのダブルクリック位置に対応する元のテーブル データの行。スカラーとして返されます。 ユーザーがテーブルを並べ替えていない場合、 |
Column | ユーザーのダブルクリック位置に対応する元のテーブル データの列。スカラーとして返されます。 ユーザーがテーブルを再配列していない場合、 |
RowHeader | ユーザーがテーブルの行ヘッダーをダブルクリックしたかどうか。logical の 0 (false) または 1 (true) として返されます。 |
ColumnHeader | ユーザーがテーブルの列ヘッダーをダブルクリックしたかどうか。logical の 0 (false) または 1 (true) として返されます。 |
Location | テーブルの親コンテナーの左下隅を基準とした、ユーザーのダブルクリック位置。
|
ScreenLocation | プライマリ ディスプレイの左下隅を基準とした、ユーザーのダブルクリック位置。
|
コールバックの記述の詳細については、App Designer のコールバックを参照してください。
例: テーブル セルがダブルクリックされたときの背景色の選択
何らかのデータをもつテーブル UI コンポーネントを作成します。ユーザーがテーブルをダブルクリックしたときに実行される、colorCells という名前の DoubleClickedFcn コールバック関数を指定します。関数 colorCells 内で次を行います。
event.InteractionInformationオブジェクトを使用して、ユーザーがセルをダブルクリックしたかどうかに関する情報にアクセスします。ユーザーが (ヘッダーや空白の領域ではなく) セルをダブルクリックした場合、ユーザーが背景色を選択するためのカラー ピッカーを開きます。
選択した色を使用して
Styleオブジェクトを作成し、それをテーブル セルに追加します。キーボードのフォーカスをテーブル UI コンポーネントに戻します。
この例を試すには、次のコードを新しいスクリプトに保存して、実行します。テーブル内のセルをダブルクリックし、そのセルの背景色を選択します。
fig = uifigure; t = uitable(fig); t.Data = rand(5); t.DoubleClickedFcn = @colorCells; function colorCells(src,event) r = event.InteractionInformation.Row; c = event.InteractionInformation.Column; if ~isempty(r) && ~isempty(c) removeStyle(src) color = uisetcolor; s = uistyle(BackgroundColor=color); addStyle(src,s,"cell",[r c]); focus(src) end end
ボタンを押したときのコールバック関数。次の値の 1 つとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
コールバックのプロパティ値を関数ハンドル、cell 配列または文字ベクトルとして指定する方法の詳細については、コールバック関数の指定を参照してください。
ButtonDownFcn コールバックは、ユーザーが UI コンポーネント上でマウス ボタンをクリックしたときに実行される関数です。コールバックは次の状況で実行されます。
ユーザーがテーブルを右クリックし、
Enableプロパティが'on'に設定されている。ユーザーがテーブルを右クリックまたは左クリックし、
Enableプロパティが'off'または'inactive'に設定されている。
キーを押したときのコールバック関数。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
コールバックのプロパティ値を関数ハンドル、cell 配列または文字ベクトルとして指定する方法の詳細については、コールバック関数の指定を参照してください。
このコールバック関数は、Table オブジェクトにフォーカスがあり、ユーザーがキーを押したときに実行されます。このプロパティに関数を定義しない場合、MATLAB はキー プレスを親 Figure に渡します。キーを繰り返し押すと Table オブジェクトのフォーカスが維持され、キーが押されるたびに関数が実行されます。ユーザーが複数のキーをほぼ同時に押した場合、MATLAB は最後に押されたキーを検出します。
このプロパティを関数ハンドル (または関数ハンドルを含む cell 配列) で指定した場合、MATLAB はコールバック データを含むオブジェクトをコールバック関数の 2 番目の引数として渡します。このオブジェクトには次の表で説明するプロパティが含まれています。コールバック関数内のこれらのプロパティには、ドット表記を使用してアクセスできます。
プロパティ | 説明 | 例: | |||
|---|---|---|---|---|---|
a | = | Shift | Shift-a | ||
Character | 1 つまたは複数のキーを押した結果として表示される文字。文字は空の場合や出力できない場合があります。 | 'a' | '=' | '' | 'A' |
Modifier | 押されている 1 つ以上の修飾キー (Ctrl、Alt、Shift など) の名前が格納される cell 配列です。 | {1x0 cell} | {1x0 cell} | {'shift'} | {'shift'} |
Key | 押されているキー。キーに刻印された (小文字の) ラベルまたはテキストの説明によって識別されます。 | 'a' | 'equal' | 'shift' | 'a' |
Source | ユーザーがキーを押したときのフォーカスのあるオブジェクトです。 | Table オブジェクト | Table オブジェクト | Table オブジェクト | Table オブジェクト |
EventName | コールバック関数を実行する原因となったアクションです。 | 'KeyPress' | 'KeyPress' | 'KeyPress' | 'KeyPress' |
修飾キーを押すと、次のようにコールバック データに影響します。
修飾キーは
Characterプロパティに影響を与える可能性がありますが、Keyプロパティを変更することはありません。一部のキーと、Ctrl で修飾されたキーは、
Characterプロパティに出力不能文字を格納します。Ctrl、Alt、Shift および他のいくつかのキーは、
Characterプロパティ データを生成しません。
ユーザーがどの文字を押したかを判断するために、Figure の CurrentCharacter プロパティをクエリすることもできます。
キーを離したときのコールバック関数。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
コールバックのプロパティ値を関数ハンドル、cell 配列または文字ベクトルとして指定する方法の詳細については、コールバック関数の指定を参照してください。
このコールバック関数は、Table オブジェクトにフォーカスがあり、ユーザーがキーを離したときに実行されます。
このプロパティを関数ハンドル (または関数ハンドルを含む cell 配列) で指定した場合、MATLAB はコールバック データを含むオブジェクトをコールバック関数の 2 番目の引数として渡します。このオブジェクトには次の表で説明するプロパティが含まれています。コールバック関数内のこれらのプロパティには、ドット表記を使用してアクセスできます。
プロパティ | 説明 | 例: | |||
|---|---|---|---|---|---|
a | = | Shift | Shift-a | ||
Character | 離されたキーの文字解釈。 | 'a' | '=' | '' | 'A' |
Modifier |
| {1x0 cell} | {1x0 cell} | {1x0 cell} | {1x0 cell} |
Key | 離されたキーの名前。キーに刻印された小文字のラベルまたはテキストの説明によって識別されます。 | 'a' | 'equal' | 'shift' | 'a' |
Source | ユーザーがキーを押したときのフォーカスのあるオブジェクトです。 | Table オブジェクト | Table オブジェクト | Table オブジェクト | Table オブジェクト |
EventName | コールバック関数を実行する原因となったアクションです。 | 'ase' | 'ase' | 'ase' | 'ase' |
修飾キーを押すと、次のようにコールバック データに影響します。
修飾キーは
Characterプロパティに影響を与える可能性がありますが、Keyプロパティを変更することはありません。一部のキーと、Ctrl で修飾されたキーは、
Characterプロパティに出力不能文字を格納します。Ctrl、Alt、Shift および他のいくつかのキーは、
Characterプロパティ データを生成しません。
ユーザーがどの文字を押したかを判断するために、Figure の CurrentCharacter プロパティをクエリすることもできます。
オブジェクト作成関数。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer のコールバックを参照してください。
このプロパティは、MATLAB がオブジェクトを作成するときに実行されるコールバック関数を指定します。MATLAB は CreateFcn コールバックを実行する前に、すべてのプロパティ値を初期化します。CreateFcn プロパティを指定しない場合、MATLAB は既定の作成関数を実行します。
既存のコンポーネントに CreateFcn プロパティを設定しても効果はありません。
このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、作成中のオブジェクトにアクセスできます。それ以外の場合は、関数 gcbo を使用してオブジェクトにアクセスします。
オブジェクト削除関数。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer のコールバックを参照してください。
このプロパティは、MATLAB がオブジェクトを削除するときに実行されるコールバック関数を指定します。MATLAB は、オブジェクトのプロパティを破棄する前に DeleteFcn コールバックを実行します。DeleteFcn プロパティを指定しない場合、MATLAB は既定の削除関数を実行します。
このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、削除されるオブジェクトにアクセスできます。それ以外の場合は、関数 gcbo を使用してオブジェクトにアクセスします。
メモ
SelectionChangedFcn プロパティは、操作に関する追加データを提供するため、CellSelectionCallback よりも推奨されます。
セル選択コールバック関数。次の値のいずれかとして指定します。
関数ハンドル。
最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。
有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。
このコールバック関数は、ユーザーがセルを選択したときに実行されます。この関数は、ユーザーのセルの操作に関する特定の情報 (セルのインデックスなど) にアクセスできます。MATLAB は、この情報を CellSelectionChangeData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.Indices は選択されたセルのインデックスを返します。CellSelectionChangeData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。
次の表に、CellSelectionChangeData オブジェクトのプロパティを示します。
プロパティ | 説明 |
|---|---|
Indices | これは、実行中のアプリでユーザーが選択したセルの行および列のインデックスを含む |
DisplayIndices | これは、並べ替え後のテーブルにおける選択されたセルの表示位置に対応する行および列のインデックスを含む |
Source | コールバックを実行するコンポーネント。 |
EventName |
|
コールバックの記述の詳細については、App Designer のコールバックを参照してください。
コールバック実行制御
コールバックの割り込み。'on' または 'off'、もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off' の値は false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。
このプロパティは実行中のコールバックが割り込み可能かどうかを決定します。次の 2 つのコールバックの状態について考慮する必要があります。
"実行中" コールバックは、現在実行しているコールバックです。
"割り込み" コールバックは、実行中のコールバックに割り込もうとするコールバックです。
MATLAB は、コールバック キューを処理するコマンドを実行するたびにコールバックの割り込み動作を判別します。これらのコマンドには、drawnow、figure、uifigure、getframe、waitfor、pause があります。
実行中コールバックにこれらのコマンドが含まれていない場合、割り込みは発生しません。MATLAB は、実行中コールバックの実行を先に終了させ、その後に割り込みコールバックを実行します。
実行中コールバックにこれらのいずれかのコマンドが含まれている場合、実行中コールバックを所有するオブジェクトの Interruptible プロパティに応じて割り込みが発生するかどうかが決まります。
Interruptibleの値が'off'の場合、割り込みは発生しません。代わりに、割り込みコールバックを所有するオブジェクトのBusyActionプロパティに応じて、割り込みコールバックが破棄されるかコールバック キューに追加されるかが決まります。Interruptibleの値が'on'の場合、割り込みが発生します。MATLAB は、コールバック キューの次回処理時に、実行中コールバックの実行を停止し、割り込みコールバックを実行します。割り込みコールバックが完了した後、MATLAB は実行中だったコールバックの実行を再開します。
メモ
コールバックの割り込みと実行は、以下の状況では動作が異なります。
割り込みコールバックが
DeleteFcn、CloseRequestFcnまたはSizeChangedFcnコールバックの場合、Interruptibleプロパティの値にかかわらず割り込みが発生します。実行中のコールバックが関数
waitforを現在実行している場合、Interruptibleプロパティの値にかかわらず割り込みが発生します。割り込みコールバックが
Timerオブジェクトで所有されている場合、Interruptibleプロパティの値にかかわらずスケジュールに従ってコールバックが実行されます。
コールバック キューイング。'queue' または 'cancel' として指定します。BusyAction プロパティは MATLAB による割り込みコールバックの実行の処理方法を決定します。次の 2 つのコールバックの状態について考慮する必要があります。
"実行中" コールバックは、現在実行しているコールバックです。
"割り込み" コールバックは、実行中のコールバックに割り込もうとするコールバックです。
BusyAction プロパティによってコールバック キューイングの動作が決まるのは、次の両方の条件を満たす場合のみです。
これらの条件に当てはまる場合、割り込みコールバックを所有するオブジェクトの BusyAction プロパティに応じて MATLAB による割り込みコールバックの処理方法が決まります。BusyAction プロパティは次の値を取ることができます。
'queue'— 割り込みコールバックをキューに入れ、実行中のコールバックが終了した後に処理されるようにします。'cancel'— 割り込みコールバックを実行しません。
この プロパティ は読み取り専用です。
削除状態。matlab.lang.OnOffSwitchState 型の on/off logical 値として返されます。
MATLAB は、DeleteFcn コールバックが実行を開始すると、BeingDeleted プロパティを 'on' に設定します。コンポーネント オブジェクトが存在しなくなるまで BeingDeleted プロパティは 'on' に設定されたままです。
クエリや変更の前にオブジェクトが削除されようとしていないか確認するために BeingDeleted プロパティの値をチェックします。
現在のオブジェクトになる能力。'on' または 'off'、もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off' の値は false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。
'on'— ユーザーが実行中のアプリでコンポーネントをクリックしたときに、現在のオブジェクトをTableに設定します。関数Figureおよび関数gcoの両方のCurrentObjectプロパティは、現在のオブジェクトとしてTableを返します。'off'— ユーザーが実行中のアプリでコンポーネントをクリックしたときに、現在のオブジェクトを、HitTestが'on'になるTableの最も近い先祖に設定します。
親/子
親コンテナー。Figure オブジェクトまたはその子コンテナー (Tab、Panel、ButtonGroup、GridLayout) のいずれかとして指定します。コンテナーが指定されていない場合、MATLAB は関数 uifigure を呼び出し、親コンテナーとして使用される新しい Figure オブジェクトを作成します。
テーブルの子。空の配列として返されます。Table オブジェクトには子がないため、このプロパティを設定しても効果はありません。
オブジェクト ハンドルの可視性。'on'、'callback' または 'off' として指定します。
このプロパティは、オブジェクトの親がもつ子のリストにおけるそのオブジェクトの可視性を制御します。オブジェクトがその親オブジェクトのリストで、子として可視できない場合、オブジェクト階層の検索またはプロパティのクエリによってオブジェクトを取得する関数は、そのオブジェクトを返しません。これらの関数には、get、findobj、clf および close が含まれます。オブジェクトは参照できない場合も有効です。オブジェクトにアクセスできる場合は、そのプロパティを設定および取得して、それをオブジェクトに作用する任意の関数に渡すことができます。
| HandleVisibility の値 | 説明 |
|---|---|
'on' | オブジェクトは常に参照できます。 |
'callback' | オブジェクトはコールバック内から、あるいはコールバックにより呼び出される関数から参照できます。しかし、コマンド ラインから呼び出される関数からは参照できません。このオプションを使用すると、コマンド ラインからのオブジェクトへのアクセスがブロックされますが、コールバック関数からのアクセスは許可されます。 |
'off' | オブジェクトは常に参照できません。このオプションは、他の関数による UI の意図しない変更を防止するために役立ちます。HandleVisibility を 'off' に設定すると、その関数の実行中にオブジェクトが一時的に非表示になります。 |
識別子
この プロパティ は読み取り専用です。
グラフィックス オブジェクトのタイプ。'uitable' として返されます。
オブジェクト識別子。文字ベクトルまたは string スカラーとして指定します。オブジェクトの識別子として機能する一意の Tag 値を指定できます。コードの他の部分からオブジェクトにアクセスする必要がある場合、関数 findobj を使用して Tag 値に基づいてオブジェクトを検索できます。
ユーザー データ。任意の MATLAB 配列として指定します。たとえば、スカラー、ベクトル、行列、cell 配列、文字配列、table、または構造体を指定できます。このプロパティを使用して、任意のデータをオブジェクトに保存します。
App Designer を使用している場合は、UserData プロパティを使用する代わりに、アプリでパブリック プロパティまたはプライベート プロパティを作成してデータを共有します。詳細については、App Designer アプリ内でのデータの共有を参照してください。
オブジェクト関数
addStyle | UI コンポーネントにスタイルを追加 |
removeStyle | UI コンポーネントからスタイルを削除 |
scroll | UI コンポーネント内の位置にスクロール |
focus | UI コンポーネントにフォーカスを移動 |
例
ファイルからデータを読み取って、各種データ型の table 配列 t を作成します。t から 4 つの変数の最初の 15 行を選択します。
t = readtable("patients.xls"); vars = ["Age","Systolic","Diastolic","Smoker"]; t = t(1:15,vars);
表形式データを表示するテーブル UI コンポーネントを作成します。データ型により、データがコンポーネントでどのように表示されるのかが決まります。たとえば、logical データはチェック ボックスとして表示されます。詳細については、アプリ内での表形式データの書式設定を参照してください。
fig = uifigure; uit = uitable(fig,"Data",t,"Position",[20 20 350 300]);

データをテーブル UI コンポーネントに表示し、プログラムで更新します。
津波データをファイルから読み取って table 配列を作成し、データのサブセットをテーブル UI コンポーネントに表示します。
t = readtable("tsunamis.xlsx"); vars = ["Year","MaxHeight","Validity"]; t = t(1:20,vars); fig = uifigure; uit = uitable(fig,"Data",t);

テーブル UI コンポーネントの Data プロパティを編集して、1 行目の津波の有効性を更新します。
uit.Data.Validity(1) = {'definite tsunami'};
変数 MaxHeight のデータにアクセスして変更することで、最大の高さのデータをメートルからフィートに変換します。
uit.Data.MaxHeight = uit.Data.MaxHeight*3.281;

ユーザーによるテーブル データの並べ替えと編集を許可し、データ変更時にデータの可視化を更新するアプリを作成します
tableDataApp.m という名前のファイルで、アプリを実装する関数を作成します。
津波データの
table配列を作成します。グリッド レイアウト マネージャーで UI Figure を作成します。
Figure で並べ替えと編集が可能なテーブル UI コンポーネントを作成します。
table配列をコンポーネントのDataプロパティに格納します。バブルの座標が津波の緯度と経度を表し、バブルのサイズが最大の高さを表すバブル チャートを作成して津波データを可視化します。
DisplayDataChangedFcnコールバックを作成して、アプリ ユーザーがテーブル UI コンポーネントで列の並べ替えやセルの編集を行ったときにバブル チャートを更新します。コールバックの詳細については、プログラムで作成したアプリ用のコールバックの作成を参照してください。
function tableDataApp % Create table array t = readtable("tsunamis.xlsx"); vars = ["Latitude","Longitude","MaxHeight"]; t = t(1:20,vars); % Create UI figure fig = uifigure; fig.Position(3:4) = [722 360]; gl = uigridlayout(fig,[1 2]); % Create table UI component uit = uitable(gl); uit.Data = t; uit.ColumnSortable = true; uit.ColumnEditable = [false false true]; % Create bubble chart ax = geoaxes(gl); lat = t.Latitude; long = t.Longitude; sz = t.MaxHeight; bubblechart(ax,lat,long,sz) % Specify table callback uit.DisplayDataChangedFcn = @(src,event) updatePlot(src,ax); end function updatePlot(src,ax) t = src.DisplayData; lat = t.Latitude; long = t.Longitude; sz = t.MaxHeight; bubblechart(ax,lat,long,sz) end
アプリを実行します。
tableDataApp

並べ替え可能な列は、マウスのカーソルを合わせるとヘッダーに矢印が表示されます。テーブルを津波の最大の高さで並べ替えます。

テーブルのセルをダブルクリックして新しい高さを入力することで、2 行目の津波の最大の高さを編集して 30 メートルにします。これに応答してバブル チャートが更新されます。

関数 uistyle および関数 addStyle を使用して、テーブル UI コンポーネントの行、列、またはセルにスタイルを追加します。
津波のサンプル データを table 配列としてワークスペースに読み取ります。次に、データを表示するテーブル UI コンポーネントを作成します。
tdata = readtable("tsunamis.xlsx"); vars = ["Year","Month","Day","Hour", ... "Cause","EarthquakeMagnitude"]; tdata = tdata(1:20,vars); fig = uifigure("Position",[500 500 760 360]); uit = uitable(fig, ... "Data",tdata, ... "Position",[20 20 720 320]);
関数 ismissing を使用して、欠損値を含むテーブル要素の logical 配列を取得します。NaN 値をもつ要素の行と列の添字を見つけます。最後に、赤の背景色スタイルを作成し、テーブル内の NaN をもつセルに追加します。
styleIndices = ismissing(tdata); [row,col] = find(styleIndices); s = uistyle("BackgroundColor",[1 0.6 0.6]); addStyle(uit,s,"cell",[row,col]);

アプリ ユーザーがテーブル内のデータを選択するとそのデータをマップ上にプロットするアプリを作成します。
selectTsunamis.m という名前のファイルで、アプリを実装する関数を作成します。
津波データを読み込みます。
グリッド レイアウト マネージャーにテーブル UI コンポーネントと地理バブル チャートがある UI Figure を作成します。
テーブル UI コンポーネントを構成します。津波データを
Dataプロパティに格納し、SelectionTypeプロパティとMultiselectプロパティを設定することによってユーザーが複数の行を選択できるようにします。アプリ ユーザーがテーブル選択を変更したときにバブル チャートを更新する、
SelectionChangedFcnコールバックを指定します。コールバック関数plotTsunamiは、バブルのサイズが津波の最大の高さを表す各選択行のバブルをプロットします。コールバックの詳細については、プログラムで作成したアプリ用のコールバックの作成を参照してください。
function selectTsunamis % Load data t = readtable("tsunamis.xlsx"); vars = ["Latitude","Longitude","MaxHeight"]; t = t(1:20,vars); % Create UI components fig = uifigure("Position",[100 100 800 350]); gl = uigridlayout(fig,[1 2]); gl.ColumnWidth = {'1x','2x'}; tbl = uitable(gl); gb = geobubble(gl,[],[]); % Configure table tbl.Data = t; tbl.SelectionType = "row"; tbl.Multiselect = "on"; tbl.SelectionChangedFcn = @(src,event) plotTsunami(src,event,gb); end % Plot tsunami data for each selected row function plotTsunami(src,event,gb) rows = event.Selection; data = src.Data(rows,:); gb.LatitudeData = data.Latitude; gb.LongitudeData = data.Longitude; gb.SizeData = data.MaxHeight; end
アプリを実行します。
selectTsunamis

"Ctrl" キーを押したまま複数のテーブル行をクリックして選択します。プロットが選択した津波データで更新されます。

R2021a 以降
関数 scroll を使用して、テーブル UI コンポーネントの行、列、またはセルにプログラムでスクロールします。
サンプルの患者データを table 配列としてワークスペースに読み取ります。次に、データを表示するテーブル UI コンポーネントを作成します。
tdata = readtable("patients.xls"); vars = ["Age","Systolic","Diastolic","Smoker"]; tdata = tdata(1:40,vars); fig = uifigure; uit = uitable(fig,"Data",tdata); uit.RowName = "numbered";

テーブルの 25 行目にスクロールします。
scroll(uit,"row",25)
バージョン履歴
R2008a で導入テーブルに複数行のデータを追加すると、内容を表示できるようにコンポーネントの行の高さが調整されます。たとえば、次のコードでは 1 つのセルに 2 行のテキストを含むテーブルを作成しています。両方の行のテキストが表示されるように、複数行の内容を含む行の高さが調整されます。
fig = uifigure; t = uitable(uifigure, ... Data=["Omelette","Eggs";"Hamburger","Beef"+newline+"Bun"]);
これらのプロパティは、figure 関数を使用して作成されたアプリ内のテーブルに使用できます。
DisplayDataColumnSortableSelectionDisplaySelectionSelectionTypeMultiselectStyleConfigurationsLayoutSelectionChangedFcnDisplayDataChangedFcnClickedFcnDoubleClickedFcn
figure ベースのアプリ内のテーブル UI コンポーネントの Extent プロパティをクエリした場合、このプロパティは常に [0 0 300 300] を返します。このベクトルの 3 番目と 4 番目の要素は、テーブルの既定の幅と高さを表しています。以前のリリースでは、Extent をクエリすると、テーブルの領域を囲む四角形の幅と高さを 3 番目と 4 番目の要素で表したベクトルが返されていました。これらは、テーブルのデータ、行の高さ、列の幅を使用して推定されたものです。Extent プロパティを使用してアプリ内の UI コンポーネントの位置を指定している場合、テーブル UI コンポーネントが違うサイズになったり、アプリのレイアウトの表示がずれたりすることがあります。
次のいずれかの代替方法を使用してコードを更新し、テーブルの Extent プロパティへの参照を削除してください。
Positionプロパティを手動で指定して、テーブルおよび他の UI コンポーネントをレイアウトします。テーブルとそのデータのサイズに基づいてアプリのレイアウトが自動的にスケーリングされるように、グリッド レイアウト マネージャーを使用して行の高さまたは列の幅を
'fit'として指定します。
ライト テーマの FontColor プロパティの既定値がわずかに変わりました。R2025a 以降、既定値は [0.1294 0.1294 0.1294] です。以前の既定値は [0 0 0] でした。
BackgroundColor プロパティを使用してテーブルの色を変更する際、RGB 3 成分に加え、16 進数カラー コードまたは色名で色を指定できます。
テーブルの DisplaySelection プロパティを使用して、現在のテーブル表示で選択されているセルをクエリします。このプロパティは、アプリ ユーザーがテーブルの列の並べ替えまたは再配列を行っていて、アプリ ユーザーのデータ表示に基づいてどのセルが選択されているかを知りたい場合に便利です。
ClickedFcn および DoubleClickedFcn のコールバック プロパティを使用して、ユーザーによるテーブル UI コンポーネントのクリックまたはダブルクリックに対する応答をプログラミングします。
ColumnRearrangeable プロパティを使用して、アプリでテーブル列を対話的に再配列する機能を指定します。ColumnRearrangeable の値が 'on' に設定されたテーブル UI コンポーネントで、列ヘッダーをクリックしてドラッグすることにより、アプリでテーブル列を再配列します。
App Designer 内および関数 uifigure を使用して作成されたアプリ内では、コールバック関数 DisplayDataChangedFcn を作成して、ユーザーがテーブル列を再配列したときにアプリが反応するようプログラムできます。
R2022a 以降、figure ベースのアプリでユーザーがテーブル列を再配列可能かどうかを指定するために RearrangeableColumns プロパティを使用することは、推奨されなくなりました。代わりに、ColumnRearrangeable プロパティを使用してください。この新しいプロパティには、古いプロパティと同じ値を使用できます。
現在のところ、RearrangeableColumns プロパティのサポートを削除する予定はありません。ただし、RearrangeableColumns プロパティは、テーブル UI コンポーネントで関数 get を呼び出して返されるリストに表示されなくなります。
プロパティを使用して、テーブル UI コンポーネントの選択オプションを構成します。
Selectionプロパティを使用して、テーブル選択の設定とクエリを行います。SelectionTypeプロパティを使用して、ユーザーがテーブルのセル、行、または列を選択できるかどうかを指定します。Multiselectプロパティを使用して、ユーザーがテーブルの要素を 1 つ選択できるか複数選択できるかを指定します。SelectionChangedFcnコールバックを指定して、ユーザーがテーブル データを選択するたびにアプリが更新されるようにします。
テーブル UI コンポーネントの選択オプションは、App Designer アプリと、関数 uifigure で作成された Figure でのみサポートされます。
App Designer アプリと uifigure ベースのアプリで、テーブル UI コンポーネントの列幅を構成します。
重み付き変数の幅を指定するには、
ColumnWidthプロパティを、数値と文字'x'のペアに設定します (例:'2x')。列の名前とデータに合わせて列幅が自動調整されるように構成するには、
ColumnWidthプロパティを'fit'に設定します。
R2020a 以降、コンテキスト メニューをグラフィックス オブジェクトまたは UI コンポーネントに割り当てる UIContextMenu プロパティの使用は推奨されなくなりました。代わりに、ContextMenu プロパティを使用してください。プロパティ値は同じです。
現在のところ、UIContextMenu プロパティのサポートを削除する予定はありません。ただし、UIContextMenu プロパティは、グラフィカル オブジェクトまたは UI コンポーネントで関数 get を呼び出して返されるリストに表示されなくなります。
R2018b 以降、UI コンポーネントのツールヒントを指定する TooltipString プロパティの使用は推奨されなくなりました。代わりに、Tooltip プロパティを使用してください。プロパティ値は同じです。
現在のところ、TooltipString プロパティのサポートを削除する予定はありません。ただし、TooltipString プロパティは、UI コンポーネントで関数 get を呼び出して返されるリストに表示されなくなります。
R2014b 以降、Selected プロパティの使用は推奨されていません。このタイプのオブジェクトには何も影響しなくなりました。
R2014b 以降、SelectionHighlight プロパティの使用は推奨されていません。このタイプのオブジェクトには何も影響しなくなりました。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)









