问题描述:
matlab关于用arrayfun取代for循环的问题
有个函数 f=x+y+(w-z)^2,x=1:1:2;y=2:1:5;w=1:2:5;z=1:1:6; 我想求出f里面的最大值,和对应的x,y,w,z值,如果不用for 循环,可以怎么写?
我大概的想法是
f=@(x,y,z,w) x+y+(z-w)^2;
[X,Y,Z,W]=ndgrid(1:2,2:5,1:2:5,1:6);
q=arrayfun(f,X,Y,Z,W);
但下面该怎样写去求出最大值和对应的x,y,z,
有个函数 f=x+y+(w-z)^2,x=1:1:2;y=2:1:5;w=1:2:5;z=1:1:6; 我想求出f里面的最大值,和对应的x,y,w,z值,如果不用for 循环,可以怎么写?
我大概的想法是
f=@(x,y,z,w) x+y+(z-w)^2;
[X,Y,Z,W]=ndgrid(1:2,2:5,1:2:5,1:6);
q=arrayfun(f,X,Y,Z,W);
但下面该怎样写去求出最大值和对应的x,y,z,
问题解答:
我来补答展开全文阅读