I would like to create a handle function by for loop in matlab, but it does not work. I will be thankful if some body help me.

1 回表示 (過去 30 日間)
a=[1 2 3];
b=[4 5 6]
n=length(a);
for i=1:n
s(i)=@(x) a(i)*x-b(i)*x;
end

回答 (2 件)

Chunru
Chunru 2021 年 10 月 23 日
a=[1 2 3];
b=[4 5 6]
b = 1×3
4 5 6
n=length(a);
for i=1:n
s{i}=@(x) a(i)*x-b(i)*x;
end
s{1}(3)
ans = -9

Alan Stevens
Alan Stevens 2021 年 10 月 23 日
編集済み: Alan Stevens 2021 年 10 月 23 日
More like this?
sfn = @(x,a,b) (a - b)*x;
a=[1 2 3];
b=[4 5 6];
n=length(a);
x = 1; % specify whatever x value you want
for i=1:n
s(i) = sfn(x,a(i),b(i));
end

カテゴリ

Help Center および File ExchangeElectrical Block Libraries についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by