Input a Vector as Function Argument

49 ビュー (過去 30 日間)
JPS
JPS 2020 年 12 月 5 日
回答済み: Sergey 2024 年 9 月 2 日
Hi,
I was facing this problem in inputing a vector to my user defined function. I have defined a function that needs two inputs to perform some operations. However, when it try to pass on a vector containing two element to the function it shows need more arguments error.
x = [2 , 4]
y = sq(x)
function out = sq(a , b)
out = a.^2 + b;
end
Can somebody show me how to do it right?
I will be very grateful.
Thanks a lot!

採用された回答

Alan Stevens
Alan Stevens 2020 年 12 月 5 日
Either
x = [2 , 4]
y = sq(x(1),x(2))
function out = sq(a , b)
out = a.^2 + b;
end
or
x = [2 , 4]
y = sq(x)
function out = sq(x)
a = x(1); b = x(2);
out = a.^2 + b;
end

その他の回答 (1 件)

Sergey
Sergey 2024 年 9 月 2 日
Use evalc
func = @(a, b) a+b
func = function_handle with value:
@(a,b)a+b
InputArgumentsNumeric = [1, 2]
InputArgumentsNumeric = 1x2
1 2
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
InputArgumentsString = strjoin(cellstr(num2str(InputArgumentsNumeric')),',')
InputArgumentsString = '1,2'
[~,output] = evalc("func(" + InputArgumentsString + ")")
output = 3

カテゴリ

Help Center および File ExchangeTime Series Collections についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by