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

4 views (last 30 days)
gafakel
gafakel on 20 Apr 2022
Commented: gafakel on 21 Apr 2022
お世話になっております。初歩的な質問で恐縮です。
今、以下のような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個目の引数だけで出来たら簡単でいいなと思ったため……)
根本的な「プログラミングの基礎」にも関わる気がするのですが、ご教示いただければ幸いです。
よろしくお願いします。

Accepted Answer

Hernia Baby
Hernia Baby on 21 Apr 2022
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 Comment
gafakel
gafakel on 21 Apr 2022
ご回答ありがとうございます。 inputnameのページ及び修正いただいたプログラムを拝見し、よく理解できました。自分の中の知識では「こんな便利なこと出来たらいいけど、難しいんだろうな……」と考えていたのですが、さすがMATLABですね。

Sign in to comment.

More Answers (0)

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!