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

2 vues (au cours des 30 derniers jours)
gafakel
gafakel le 20 Avr 2022
Commenté : gafakel le 21 Avr 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個目の引数だけで出来たら簡単でいいなと思ったため……)
根本的な「プログラミングの基礎」にも関わる気がするのですが、ご教示いただければ幸いです。
よろしくお願いします。

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 2 次元および 3 次元プロット dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!