EXCELからのデータ抽出

34 Ansichten (letzte 30 Tage)
れー
れー am 15 Okt. 2021
Kommentiert: れー am 15 Okt. 2021
初歩的な質問ですみません。数字が縦横にひたすら並べられたスプレッドシートがあるのですが、writematrixで横の列を選択し抽出することはできるのですが、同時に縦の列も選択して抽出することは可能でしょうか?
  1 Kommentar
れー
れー am 15 Okt. 2021
二つ目のクロスしたようなもので合っています 例えば3の倍数の行のCとEの列のように抽出がしたいです

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Atsushi Ueno
Atsushi Ueno am 15 Okt. 2021
>同時に縦の列も選択して抽出することは可能でしょうか?
いいえ。不可能です。
readmatrixの範囲指定オプションには下記2つの文法がありますが、データ型が異なるだけで、範囲指定の方法は殆ど同じです(微妙に異なります)。仰る通り「単一の行と列が交わる箇所を選択する」方法はあっても「行と列の交差する部分を複数同時に選択する」方法が見つかりません。
  1. ファイル インポート オプションを使う方法
  2. Rangeオプションを使う方法
>例えば3の倍数の行のCとEの列のように抽出がしたいです
こういう事ですよね。
ExcelではCtrlキーを押しながら交差箇所をポチポチ選択していけば実現しますがそれは大変な作業です。行と列の交点を選択するにはINDEX関数とMATCH関数を組み合わせるなどの方法を取る必要があります。
一方、MATLABの行列(二次元配列)のでは抽出可能です。readmatrixで全ての表をMATLABに読み込んでから、行列のindexingで抽出できます。
matrix = readmatrix('Book1.xlsx');
A = matrix([3 6 9], [3 5])
A = 3×2
0.9873 0.1741 0.0157 0.8788 0.6886 0.9030
B = matrix(3:3:end, [3 5]) % 3の倍数の行のCとEの列
B = 19×2
0.9873 0.1741 0.0157 0.8788 0.6886 0.9030 0.8179 0.0544 0.6531 0.0220 0.0416 0.1007 0.5051 0.0277 0.3105 0.5734 0.1067 0.1532 0.1035 0.4717
  1 Kommentar
れー
れー am 15 Okt. 2021
わかりわすい説明ありがとうございます それぞれ分けてやってみます ありがとうございました

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!