EXCELからのデータ抽出

15 ビュー (過去 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!