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

1 回表示 (過去 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 ExchangeAnnotations についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!