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

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

 Risposta accettata

Hernia Baby
Hernia Baby il 27 Ago 2021
Modificato: Hernia Baby il 27 Ago 2021

1 voto

やりたいこと理解しましたので編集します。
まずは適当なデータセットを用意し、読み込みます。
[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 Commenti

RK
RK il 27 Ago 2021
ご回答ありがとうございます。
ファイルを読込み➡抜き出す範囲をスピナーで選択➡ファイルから値を読込み➡ボタンを押し、グラフをプロット
とする場合、どのような感じになりますでしょうか。
ご確認のほどよろしくお願いします。
失礼。範囲抽出以降も必要でしたか。
以下コードを作成しました。
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 il 27 Ago 2021
ご丁寧にありがとうございます。
現在、スピナA:開始行、スピナB:終了行、スピナC:横軸の列、スピナD:縦軸の列
といった感じに出力し、プロットの式に入れたく存じます。
こちらに当てはめた形を教えていただけないでしょうか。
お手数をおかけしますが、よろしくお願い申し上げます。
RK
RK il 27 Ago 2021
Modificato: RK il 27 Ago 2021
最初の添付ファイルですと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 il 27 Ago 2021
Modificato: Hernia Baby il 27 Ago 2021
やりたい事理解したので、最初の回答に編集しました
二次元配列では A(行, 列) の形になっています
 行 = 始め:終わり
 列 = 場所(a:bならa~bまで)
これを新しい行列Bに入れることで実現しています
B = A(始め:終わり, 何列目)
RK
RK il 27 Ago 2021
丁寧に教えていただきありがとうございました。
想定していた動作ができました。

Accedi per commentare.

Più risposte (0)

Richiesto:

RK
il 27 Ago 2021

Commentato:

RK
il 27 Ago 2021

Community Treasure Hunt

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

Start Hunting!