MATLAB Answers

2D-Lookup table のエクセルからのデータのインポート方法について

15 views (last 30 days)
s
s on 17 Oct 2019
Commented: s on 10 Nov 2019
2D-lookup table を使って制御値のマップを作成したいのですが、エクセルで作成した添付画像のようにするにはどうすれば良いでしょうか。
エクセルのデータは手動入力できないほどの膨大のデータなので簡単にインポートできる方法はありますでしょうか。
また、このデータはそれぞれ行の長さが違うのですがその場合でも作成可能でしょうか。
バージョンは2016bになります

  0 Comments

Sign in to comment.

Answers (2)

Yoshio
Yoshio on 19 Oct 2019
Edited: Yoshio on 19 Oct 2019

  3 Comments

s
s on 21 Oct 2019
x1 = xlsread('test.xlsx','Sheet1','A3:A975');
y1 = xlsread('test.xlsx','Sheet1','B3:B975');
x2 = xlsread('test.xlsx','Sheet1','D3:D605');
y2 = xlsread('test.xlsx','Sheet1','E3:E605');
このようにテーブルデータの次元数が違うと設定できないのでしょうか。
診断ビューワーで以下のようなエラーが表示されてしまいます。
ブロック 'test_cal1p0/2-D Lookup Table' において、'テーブル データ' パラメーター (1) で指定した次元数は、'テーブルの次元数' パラメーター値 (2) と一致しなければなりません。
Yoshio
Yoshio on 21 Oct 2019
実現されたい内容は長さの異なる2つの1-D Lookup Tableで実現できると思いますが、いかがでしょうか?
2-Dの場合は、こちらのような構造になりますから、配列のサイズが異なる2つの行列は
テーブルデータを構成できません。
s
s on 5 Nov 2019
遅くなり申し訳ございません。
1D-lookup table を4つ作成してみました。
画像のように入力データがあり、その一番近い数値を4つの中から選択したいのですがそのようなことは可能でしょうか?キャプチャ.PNG

Sign in to comment.


Yoshio
Yoshio on 5 Nov 2019
上図だけですと、「入力データがあり、その一番近い数値を4つの中から選択したい」の詳細がわからないのですが、その部分のロジックをMATLAB Functionか、Simulinkで作るとして、以下のようにしてみてはいかがでしょうか。
model.jpeg

  3 Comments

s
s on 7 Nov 2019
画像のようなデータが入力にあったとして、
Lookuptableのデータと入力したデータとの差が小さいものから
出力されてくる一番大きな数値を制御に使いたいと考えています。
<イメージフロー>
入力データ(常時違う波形)→各lookuptableへ→一番差が小さいテーブルデータの選択→出力された値の中で一番大きい値を制御値に使用
このようなイメージなのですが
キャプチャ20191106.PNG
Yoshio
Yoshio on 7 Nov 2019
すみませんが、良く理解できません。
入力したデータ (時系列データなのでしょうか、(x,y)データなのでしょうか? サイズは?)
Lookuptableのデータとの差(何と何との差ですか? 一つですか、複数ですか、差の定義は?)
一番差が小さいテーブルデータの選択(Lookuptableを得らぶということでしょうか?)
出力された値の中で一番大きい値(複数の値が出てくる? サイズは?)
お手数ですが、上記をある程度具体的に記載いただけませんか?
s
s on 10 Nov 2019
入力データは今は時系列データです。本来は一番最初に質問した時のデータのように(x,y)グラフを使用したいですが、1Dlook up table にxyのデータを入力する事は可能なのかいまいちよくわかりません。
言葉での説明が難しいので画像を用いてみました。

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!