varargin

11 ビュー (過去 30 日間)
AP
AP 2011 年 5 月 15 日
How can I check the input argument of a function to see if a specific string has been input? For example, I want to see if the user has input 'filename' in the function argument then the function reads the file name in the argument as well and writes the data into it otherwise doesn't write anything to any file.
myfunc(x, y, z, 'filename', 'mydata.txt') ---> writes to mydata.txt
myfunc(x, y, z) ---> does not write to any file
Actually, I have 10 possible cases and I want to be able to check which of those cases is in the input argument and based on that take the appropriate action like plot function which you can specify 'color', linewidth', 'linetype', and other plot properties arbitrarily.
Thanks, Ahmad

採用された回答

Daniel Shub
Daniel Shub 2011 年 5 月 15 日
doc inputParser
With 10 possibilities, I think an inputParser object is the way to go. With only 1 or two possibilities, the inputParser might also be teh way to go.

その他の回答 (1 件)

the cyclist
the cyclist 2011 年 5 月 15 日
Define the function with
function [output] = myfunc(x,y,z,varargin)
then you can use nargin() to count how many inputs there were, and also see what values are stored in varargin.
  3 件のコメント
James Tursa
James Tursa 2011 年 5 月 15 日
Then do what the cyclist suggested with a slight variation:
function varargout = myfunc(varargin)
Then run a loop over varargin, testing each input individually, and act accordingly.
AP
AP 2011 年 5 月 15 日
This is what I was thinking but is there any command so that I can search in the cell array of VARARGIN? I tried ismember and strfind but they didn't work. do you have any suggestion?

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

カテゴリ

Help Center および File ExchangeArgument Definitions についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by