問題タブ [matlab-table]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 行と列のラベルを付けてマトリックスを表示する
Matlab ターミナルで行と列のラベルを持つ行列を表示する便利な方法はありますか? このようなもの:
降伏:
さらに良いのは、いくつかのASCIIアートの機能を備えたものです。
matlab - MATLAB: ismember と isequal
A
とB
が同じ列 (および同じ順序) を持つテーブル (またはデータセット) である場合、次のような式は、次のようにismember(A(:, somecols), B(:, somecols))
インデックス付けに適したブール配列を生成A
します。
上記の行は、 で指定された列の の行と一致する の行で構成されるtable
(またはdataset
、 のクラスに応じて) に評価されます。A
A
B
somecols
しかしここで、B
ちょうど 1 つの行があるとします。より現実的には、から行を選択するための基準は、単純に のこの 1 つの行、たとえば最初の行にA
一致することであるとします。B
これを行うことができます:
これに関して私が持っている主な疑問は、それが「意味的に明確」ではないということですismember
。実際には、 が等価性をテストするために使用されているからです。
書くことができれば、意味的により明確になります
しかし、これでは望ましい結果が得られません。A(:, ...)
(具体的には、一致する行が含まれている場合でも一致を返しませんB(1, ...)
。)
私の質問は、「この行はこの参照行とA
一致しますか」という質問に対応する論理ベクトルを正しく生成する述語は何ですか?somecols
matlab - テーブル (またはデータセット) の行のグループに集計関数を適用する方法は?
変数の中に何らかの要因( n 個の異なる値、または「レベル」を持つ) を含むtable
(またはdataset
) オブジェクトがあるとします。また、一連の行を入力として取り、出力として単一の集計値 (別名「集計」) を返すカスタム集計関数があるとします。A
X
agg
統計的データ分析で非常に一般的な操作の例はA
、因子の値に従っての行をグループ化し、グループ内の行で構成される配列X
に適用することです。agg
このような操作の結果は、 n行と 2 つの変数を持つ新しいtable
(またはdataset
、のクラスに応じてA
) になります。これらの変数の最初の 1 つには という名前を付け、 の係数のn 個の個別の値を含める必要があります。2 番目の変数には、適切な (できればユーザー指定の) 名前を付けて、行グループに適用した結果を含める必要があります。対応するレベル。X
X
A
agg
X
私が言ったように、これは MATLABtable
やdataset
オブジェクトなどのデータ構造に対して実行する非常に標準的な操作であるため、それを行う組み込みの方法があると期待していましたが、見つかりません。
たとえば、次のA
ように定義します。
また、みましょX
うTrafficLight
agg
(もちろん、agg
ここでは例をできるだけ単純にするためにこれを使用しています。実際agg
には、それほど単純ではありません。)
私が考えている典型的なgroup_aggregate
関数は通常、入力引数として (何らかの順序で) 集計関数、計算された集計の出力の列の名前table
(またはdataset
)、およびグループ化する 1 つ以上の変数の名前を取ります。に。したがって、この例では、そのような関数の呼び出しとその出力は次のようになります。
ところで、上記の結果を得るために、私はこの絶望的な小さな獣を呼び起こしました。
たとえば、X
変数のさまざまなクラスの値などに対して、組み込みのソリューションがより堅牢であることを願っています。
matlab - Matlabでテーブルを事前に割り当てる最良の方法は何ですか?
通常、 を使用cell()
するzeros()
かones()
、データの種類に応じて事前に割り当てますが、さまざまなデータ構造を保持できるテーブルを事前に割り当てる最良の方法は何ですか?
table()
Matlab 2013b で追加された機能について話しています。
明らかに、次のようなコードを使用してメモリを予約できます。
しかし、テーブルがさまざまなデータ型を保持することになっていると、問題が発生します。ここで整数の列に入力したいと想像してみてください。または、私の場合のように、各行に文字列、整数、および浮動小数点数を含む観測値を入力します。T
matlab - 古いバージョンの Matlab でテーブルを使用するには?
MATLAB 2010 以下のバージョンに、結果 (例: 一部の行列) を表形式で出力する関数はありますか? グーグルから得たのはtable()
、MATLAB 2013 以降のバージョンでのみ機能する関数だけでした。マシンに MATLAB 2010 がインストールされていますが、新しいバージョンをダウンロードするのは現実的ではありません。サイズが非常に大きく、急いでいるためです。ありがとうございました。
matlab - varfun を使用したグループ化による最大値のインデックス
Id と Dates を持つテーブルがあります。各 Id の最大日付のインデックスを取得したいと思います。
私の最初のアプローチはそうです: varfun(@max, table, 'Grouping Variables', 'Id', 'InputVariables','Date');
これは明らかに、インデックスではなく日付を示しています。max 関数は、指定すると maxvalue と maxindex の両方を返すことに注意しました。 [max_val, max_idx] = max(values);
max を使用して max_idx を取得する無名関数を定義するにはどうすればよいですか? 次に、それを var_fun で使用して結果を取得します。
次のように max() に対して (anon func とは対照的に) cover 関数を宣言したくない: 1. スクリプトで作業しており、別の関数ファイルを作成したくない 2. 自分の関数への現在のスクリプト
100万人ありがとう
matlab - データ量に応じて Uitable MATLAB で行数をプログラムする
MATLAB Web サイトで提供されている例に従って、MATLAB GUI で uitable を作成しようとしていますが、作成できました。ただし、私の場合、テーブル内の行数はデータのサイズによって異なります。だから、どうすれば行に適切にラベルを付けることができるのだろうと思っていました。データには N ポイントがあるとします。行に 1 2 3 4,.....N を読み取らせたいとします。
コードを変更してそれを行う方法を知っている人はいますか?
これが私がこれまでに持っているものです:
ありがとう
matlab - Matlab テーブル作成の高速化
Matlab でかなり大きなテーブル (> 10,000 行) を作成すると、コンストラクターによって呼び出される単一の関数が原因で非常に遅くなる可能性があることに気付きましたcheckDuplicateNames
。ただし、通常、テーブルに渡す名前は既に一意であると確信しています。
以下は、問題をよく示しています。10,000 個のランダム値の生成には 1 ミリ秒もかかりませんが、文字列の行名を含むランダム値のテーブルの生成には 1.4 秒かかり、重複する行名のチェックには 1.4 秒かかります。
checkDuplicateNames
関数を呼び出さずに Matlab でテーブルを作成する別の方法はありますか?