エクセルファイルのプロット方法

エクセルからグラフをプロットするアプリの作成を行っています。
ファイルの導入やプロット線の表示は出来たのですが、肝心のエクセルから数値を抜き出すことが出来ません。
添付のようなデータで、A1~A11を横軸、C1~C11を縦軸に取るようなグラフを作成したい場合、どのようにコードを書けばよいのでしょうか。
数値の開始・終了位置はスピナーで選択する予定です。
素人意見で恐縮ですが、よろしくお願い申し上げます。

 채택된 답변

Hernia Baby
Hernia Baby 2021년 8월 27일
편집: Hernia Baby 2021년 8월 27일

1 개 추천

やりたいこと理解しましたので編集します。
まずは適当なデータセットを用意し、読み込みます。
[a,~,~] = xlsread('Sample_1.xlsx')
a = 10×6
1.0000 0.9914 0.0417 0.0767 0.6748 0.1623 2.0000 0.5800 0.5244 0.3944 0.0811 0.8274 3.0000 0.2600 0.1957 0.9477 0.3104 0.0389 4.0000 0.6315 0.1302 0.3569 0.8804 0.2418 5.0000 0.0826 0.1855 0.5465 0.6147 0.5935 6.0000 0.7500 0.8638 0.1602 0.1092 0.5006 7.0000 0.0681 0.1988 0.5786 0.5881 0.7548 8.0000 0.2338 0.9897 0.0112 0.2560 0.3832 9.0000 0.1704 0.8466 0.8401 0.1301 0.3639 10.0000 0.6253 0.9430 0.4205 0.9498 0.0431
パラメータを入れます
ここでは 1列目を横軸、2列目を縦軸、2行~5行まで抽出 しています
idx_start = 2; % スピナA
idx_end = 5; % スピナB
Column_x = 1; % スピナC
Column_y = 2; % スピナD
以下がやりたい事の肝です
x = a(idx_start:idx_end, Column_x);
y = a(idx_start:idx_end, Column_y);
プロットします
plot(x,y)

댓글 수: 6

RK
RK 2021년 8월 27일
ご回答ありがとうございます。
ファイルを読込み➡抜き出す範囲をスピナーで選択➡ファイルから値を読込み➡ボタンを押し、グラフをプロット
とする場合、どのような感じになりますでしょうか。
ご確認のほどよろしくお願いします。
Hernia Baby
Hernia Baby 2021년 8월 27일
失礼。範囲抽出以降も必要でしたか。
以下コードを作成しました。
clc,clear;
[a,~,~] = xlsread('Sample_1.xlsx');
idx_max = length(a(1,:));
以下をスピナーに対応させてください
自分はmlxでスライダーにしていたのでこのような形になっています
idx = 3;
if idx > idx_max
idx = idx_max;
end
plot(a(:,1),a(:,idx))
-------------------------------------------------
画像ですと以下のようになります。
RK
RK 2021년 8월 27일
ご丁寧にありがとうございます。
現在、スピナA:開始行、スピナB:終了行、スピナC:横軸の列、スピナD:縦軸の列
といった感じに出力し、プロットの式に入れたく存じます。
こちらに当てはめた形を教えていただけないでしょうか。
お手数をおかけしますが、よろしくお願い申し上げます。
RK
RK 2021년 8월 27일
편집: RK 2021년 8월 27일
最初の添付ファイルですとA列を横軸、C軸を縦軸に取りたい場合、
下記でプロット可能でしょうか。誤りがあれば教えていただきたいです。
a:スピナA(開始行)
b:スピナB(終了行)
c:スピナC(横軸)
d:スピナD(縦軸)
for i =c
A(:,i)=~(a:b);
end
for i =d
B(:,i)=~(a:b);
end
plot(A(:,1),C(:,1));
素人質問かつ度々申し訳ございませんがよろしくお願い申し上げます。
Hernia Baby
Hernia Baby 2021년 8월 27일
편집: Hernia Baby 2021년 8월 27일
やりたい事理解したので、最初の回答に編集しました
二次元配列では A(行, 列) の形になっています
 行 = 始め:終わり
 列 = 場所(a:bならa~bまで)
これを新しい行列Bに入れることで実現しています
B = A(始め:終わり, 何列目)
RK
RK 2021년 8월 27일
丁寧に教えていただきありがとうございました。
想定していた動作ができました。

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

추가 답변 (0개)

질문:

RK
2021년 8월 27일

댓글:

RK
2021년 8월 27일

Community Treasure Hunt

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

Start Hunting!