The way to make an array using function_hundle(関数ハンドルを用いた配列の作り方)
이전 댓글 표시
関数ハンドルを用いた配列の作り方をご教授願いたいです。
例えば、
for i=1:5, f[i]=i.*x
としたときに
f[1]=x, f[2]=2.*x, f[3]=3.*x, f[4]=4.*x, f[5]=5.*x
といったデータが格納されるようなプログラムは可能しょうか?
ぜひよろしくお願いします。
I want the way to make an array using function_hundle.
For example, when I define
for i=1:5, f[i]=i.*x,
I wish to be stored
f[1]=x, f[2]=2.*x, f[3]=3.*x, f[4]=4.*x, f[5]=5.*x.
Please tell me the way...
Thank you.
댓글 수: 2
sushanth govinahallisathyanarayana
2020년 11월 30일
Is x an array or a single number?
vec=1:5
if it is a single number, then
f=vec.*x
if x is an array, then
f=x(:)*vec.' (assuming vec is a column vector)
Each column of vec will be x multiplied by the corresponding number.
Hope this helps.
Yoshiki Sato
2020년 11월 30일
채택된 답변
추가 답변 (1개)
KALYAN ACHARJYA
2020년 11월 30일
편집: KALYAN ACHARJYA
2020년 11월 30일
Option 1:
i=1:5;
x=2;
f=i*x
Here resultant f array itself represents the f(1), f(2)..respectively depends on array length of i. Considering x is scalar.
Result:
f =
2 4 6 8 10
Option 2:
Please note function handle is different
i=1:5;
fun=@(x) i*x;
fun(2)
here created function handle with x as inputs. Once you pass the input as defined, it gives the resultant value
fun(2)
%...^ x value
You can create the function handle with both as inputs also
fun=@(i,x) i*x;
Result:
ans =
2 4 6 8 10
Option 3:
Create MATLAB custom function, save in the same working directory as fun1.m
function f=fun1(i,x)
f=i*x;
end
Now pass the input arguments from another matlab scripts or from command window
f=fun1(1:5,2)
Result:
>> f=fun1(1:5,2)
f =
2 4 6 8 10
Hope it helps! Keep Learning!
카테고리
도움말 센터 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!