関数に与える引数の、関数内の使用について

3 ビュー (過去 30 日間)
gafakel
gafakel 2022 年 4 月 20 日
コメント済み: gafakel 2022 年 4 月 21 日
お世話になっております。初歩的な質問で恐縮です。
今、以下のようなfunctionをmファイルで定義したとします。
function expPlot(data)
% 引数から横縦軸のデータを作成
xAx=1:length(data);
yAx=data;
% 実際のプロット
figure
plot(xAx,yAx)
title('normal')
end
いちいちplotって書くの面倒だなと思ったので作ってみたのですが、ここで引数に与える"data"自体の名前をこの中に持ってくることは可能なのでしょうか?
例えば、変数"experimentData"を引数としてこのexpPlotに与えた場合に、expPlotによって作られるfigureのNameを"experimentData"としたい、という状況です。
(例えば上のexpPlotを次のようにし、引数としてそもそも与えてしまえばいいのでしょうが……。
function expPlot2(data,name)
xAx=1:length(data);
yAx=data;
graphName=name;
figure
plot(xAx,yAx)
title('normal')
set(gcf,'name',graphName)
end
このようにして、
expPlot2(experimentData,"experimentData");
とすれば、という感じです。これを、1個目の引数だけで出来たら簡単でいいなと思ったため……)
根本的な「プログラミングの基礎」にも関わる気がするのですが、ご教示いただければ幸いです。
よろしくお願いします。

採用された回答

Hernia Baby
Hernia Baby 2022 年 4 月 21 日
inputname が使えます
わかりやすく今回はタイトルが変わるようにしています
clc,clear;
experimentData = sin(2*pi*10*(0:0.01:1));
expPlot2(experimentData)
関数部分
function expPlot2(data)
% ここを変更
graphName = inputname(1);
xAx=1:length(data);
yAx=data;
figure
plot(xAx,yAx)
% タイトルに引数を挿入
title(graphName)
end
  1 件のコメント
gafakel
gafakel 2022 年 4 月 21 日
ご回答ありがとうございます。 inputnameのページ及び修正いただいたプログラムを拝見し、よく理解できました。自分の中の知識では「こんな便利なこと出来たらいいけど、難しいんだろうな……」と考えていたのですが、さすがMATLABですね。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange2 次元および 3 次元プロット についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!