Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

uitable

テーブルのユーザー インターフェイス コンポーネントの作成

説明

uit = uitable は、現在の Figure 内にテーブルのユーザー インターフェイス コンポーネントを作成し、Table UI コンポーネント オブジェクトを返します。利用可能な Figure がない場合は、MATLAB® が関数 figure を呼び出して Figure を作成します。

uit = uitable(Name,Value) は、1 つ以上の名前と値のペアの引数を使用して、テーブル UI コンポーネントのプロパティ値を指定します。

uit = uitable(parent) は、指定された親コンテナー内にテーブルを作成します。親コンテナーには、関数 figure または関数 uifigure で作成された Figure か、パネルなどの子コンテナーを指定できます。uitable のプロパティの値は、関数 figure で作成されたアプリと関数 uifigure で作成されたアプリで多少異なります。詳細については、名前と値のペアの引数を参照してください。

uit = uitable(parent,Name,Value) は、親コンテナーと 1 つ以上のプロパティ値を指定します。

すべて折りたたむ

R2018a 以降、table 配列データをテーブル UI コンポーネント内に表示できます。(この型のデータは、関数 uifigure で作成された Figure 内にテーブル UI コンポーネントがある場合にのみサポートされます。App Designer では、このタイプの Figure がアプリの作成に使用されます)。

ファイルからデータを読み取るために関数 readtable を呼び出すことで、table 配列 t を作成します。4 つの変数と 15 の行を t から選択します。

t = readtable('patients.xls');
vars = {'Age','Systolic','Diastolic','Smoker'};
t = t(1:15,vars);

テーブル UI コンポーネントを作成し、t をデータとして指定します。

fig = uifigure;
uit = uitable(fig,'Data',t);

A table with four columns: "Age", "Systolic", "Diastolic", and "Smoker". The table is populated with data. The data in the "Smoker" column appears as checked or unchecked boxes.

table 配列データをテーブル UI コンポーネントに表示し、プログラムで更新します (この型のデータは、関数 uifigure で作成された Figure 内にテーブル UI コンポーネントがある場合にのみサポートされます。App Designer では、このタイプの Figure がアプリの作成に使用されます)。

津波データをファイルから読み取って table 配列を作成し、データのサブセットをテーブル UI コンポーネントに表示します。

t = readtable('tsunamis.xlsx');
vars = {'Year','MaxHeight','Validity'};
t = t(1:20,vars);
fig = uifigure;
uit = uitable(fig,'Data',t);

A table with three columns of tsunami data: the year of the tsunami, the maximum tsunami height in meters, and the validity of the tsunami (for example, "questionable tsunami" or "definite tsunami").

UI テーブルの Data プロパティを編集して、1 行目の津波の有効性を更新します。

uit.Data.Validity(1) = {'definite tsunami'};

A table with tsunami year, maximum height, and validity. The entry in the first row has a Validity value of "definite tsunami".

MaxHeight 列のデータにアクセスして変更することで、最大の高さのデータをメートルからフィートに変換します。

uit.Data.MaxHeight = uit.Data.MaxHeight*3.281;

A table with tsunami year, max height, and validity. The values in the MaxHeight column are in feet.

ユーザーによるテーブル データの並べ替えと編集を許可し、データ変更時にデータの可視化を更新するアプリを作成します (対話式の列の並べ替えは、関数 uifigure で作成された Figure 内にテーブル UI コンポーネントがある場合にのみサポートされます。App Designer では、このタイプの Figure がアプリの作成に使用されます)。

まず、tsunamisData.m というプログラム ファイルを作成します。プログラム ファイル内で次を行います。

  • 関数 readtable を呼び出して table 配列を作成します。

  • UI figure を作成します。

  • Figure に表示する並べ替えと編集が可能なテーブル UI コンポーネントを作成します。table 配列をコンポーネントの Data プロパティに格納します。

  • バブルの座標が津波の緯度と経度を表し、バブルのサイズが最大の高さを表すバブル チャートを作成して津波データを可視化します。

  • アプリ ユーザーがテーブル UI コンポーネントで列の並べ替えやセルの編集を行ったときに DisplayData プロパティを使用してバブル チャートを更新する、DisplayDataChangedFcn コールバックを指定します。

function tsunamisData
    % 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];

    % Create table UI component
    uit = uitable(fig);
    uit.Data = t;
    uit.ColumnSortable = true;
    uit.ColumnEditable = [false false true];
    uit.Position(3) = 290;
    uit.DisplayDataChangedFcn = @updatePlot;

    % Create bubble chart
    ax = uiaxes(fig);
    ax.Position(1) = 315;
    ax.XLabel.String = 'Longitude';
    ax.YLabel.String = 'Latitude';
    x = t.Longitude;
    y = t.Latitude;
    sz = t.MaxHeight;
    bubblechart(ax,x,y,sz)

        % Update the bubble chart when table data changes
        function updatePlot(src,event)
            t = uit.DisplayData;
            x = t.Longitude;
            y = t.Latitude;
            sz = t.MaxHeight;
            bubblechart(ax,x,y,sz)
        end

end

An app with a table displaying the Latitude, Longitude, and MaxHeight data for a number of tsunamis, and a bubble chart of the table data. The bubble chart plots the location of the tsunamis with Longitude on the x-axis, Latitude on the y-axis, and bubble size given by MaxHeight.

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

The MaxHeight column of the tsunami data table is sorted in ascending order. The user's mouse cursor is on the MaxHeight column header, where an arrow pointing up is displayed next to the header text.

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

The cell in the second row and the MaxHeight column is selected, and the number 1 has been replaced with the number 30. The bubble chart bubble sizes have changed to reflect the new MaxHeight data.

R2019b 以降、関数 uistyle および関数 addStyle を使用して、テーブル UI コンポーネントの行、列、またはセルにスタイルを追加できます (スタイルは、関数 uifigure を使用して作成された Figure 内にテーブル UI コンポーネントがある場合にのみサポートされます。App Designer では、このタイプの Figure がアプリの作成に使用されます)。

テーブル UI コンポーネント内の欠損値を含むセルのスタイルを設定します。この場合は、NaN 値をもつセルに黄色の背景色スタイルを追加します。

津波のサンプル データを table 配列としてワークスペースに読み取ります。次に、データを表示するテーブル UI コンポーネントを作成します。

tdata = readtable('tsunamis.xlsx');
vars = {'Year','Month','Day','Hour', ...
        'MaxHeight','Cause','EarthquakeMagnitude'};
tdata = tdata(1:100,vars);

fig = uifigure('Position',[500 500 760 360]);
uit = uitable(fig);
uit.Position = [20 20 720 320];
uit.Data = tdata;
uit.RowName = 'numbered';

関数 ismissing を使用して、欠損値を含むテーブル要素の logical 配列を取得します。NaN 値をもつ要素の行と列の添字を見つけます。最後に、黄色の背景色スタイルを作成し、テーブル UI コンポーネントの NaN 値を含むセルに追加します。

styleIndices = ismissing(tdata);
[row,col] = find(styleIndices);

s = uistyle('BackgroundColor',[1 0.6 0.6]);
addStyle(uit,s,'cell',[row,col]);

R2021a 以降、関数 scroll を使用して、テーブル UI コンポーネントの行、列、またはセルにプログラムでスクロールできます (プログラムによるスクロールは、関数 uifigure を使用して作成された Figure 内にテーブル UI コンポーネントがある場合にのみサポートされます。App Designer では、このタイプの Figure がアプリの作成に使用されます)。

サンプルの患者データを 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)

ランダムな整数からなる 3 行 10 列の配列を表示するテーブル UI コンポーネントを作成します。Data プロパティが表示対象の値を指定し、Position プロパティが Figure 内のテーブルの位置とサイズを指定します。

f = figure;
uit = uitable(f,'Data',randi(100,10,3),'Position',[20 20 262 204]);

テーブル UI コンポーネントには、異なるデータ型を複数列にわたって混在させて格納することができます。

空の Table UI コンポーネントを作成します。

f = figure;
uit = uitable(f);

Data プロパティの設定により、異なるデータ型が混在して含まれる cell 配列としてデータを格納します。その後、Position プロパティを設定して、データに合わせて位置とサイズを調整します。

d = {'Male',52,true;'Male',40,true;'Female',25,false};
uit.Data = d;
uit.Position = [20 20 258 78];

ColumnName プロパティを設定して、列見出しを説明的な名前に変更します。ユーザーが UI 内のデータを編集できるように、ColumnEditable プロパティを true に設定します。ユーザーが UI 内の値を変更すると、Data プロパティはその変更を反映して更新されます。

uit.ColumnName = {'Gender','Age','Authorized'};
uit.ColumnEditable = true;

入力引数

すべて折りたたむ

親コンテナー。関数 figure または関数 uifigure で作成された Figure か、子コンテナーとして指定します。

  • パネル、タブ、およびボタン グループは、いずれのタイプの Figure でもコンテナーとすることができる。

  • グリッド レイアウトは、関数 uifigure で作成された Figure 内でのみコンテナーとすることができる。

名前と値のペアの引数

例: uitable(fig,'Data',[1 2 3; 4 5 6])

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は一重引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を指定できます。

名前と値のペアの引数を使用して、Table プロパティを設定できます。

  • 関数 uifigure を使用して作成されたアプリ、または App Designer で利用できるプロパティのリストについては、Table のプロパティ を参照してください。

  • 関数 figure を使用して作成されたアプリで利用できるプロパティのリストについては、Table のプロパティ を参照してください。

R2008a で導入