EXCELからのデータ抽出

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

Sign in to comment.

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 15 Oct 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 Comment
れー
れー on 15 Oct 2021
わかりわすい説明ありがとうございます それぞれ分けてやってみます ありがとうございました

Sign in to comment.

More Answers (0)

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!