EXCELからのデータ抽出

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

댓글을 달려면 로그인하십시오.

채택된 답변

Atsushi Ueno
Atsushi Ueno 2021년 10월 15일
>同時に縦の列も選択して抽出することは可能でしょうか?
いいえ。不可能です。
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
れー
れー 2021년 10월 15일
わかりわすい説明ありがとうございます それぞれ分けてやってみます ありがとうございました

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!