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
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/29 02:11:18
![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](/uploads/image/z/2542437-45-7.jpg?t=matlab%E5%85%B3%E4%BA%8E%E7%94%A8arrayfun%E5%8F%96%E4%BB%A3for%E5%BE%AA%E7%8E%AF%E7%9A%84%E9%97%AE%E9%A2%98%E6%9C%89%E4%B8%AA%E5%87%BD%E6%95%B0+f%3Dx%2By%2B%28w-z%29%5E2%2Cx%3D1%3A1%3A2%3By%3D2%3A1%3A5%3Bw%3D1%3A2%3A5%3Bz%3D1%3A1%3A6%3B+%E6%88%91%E6%83%B3%E6%B1%82%E5%87%BAf%E9%87%8C%E9%9D%A2%E7%9A%84%E6%9C%80%E5%A4%A7%E5%80%BC%2C%E5%92%8C%E5%AF%B9%E5%BA%94%E7%9A%84x%2Cy%2Cw%2Cz%E5%80%BC%2C%E5%A6%82%E6%9E%9C%E4%B8%8D%E7%94%A8for+%E5%BE%AA%E7%8E%AF%2C%E5%8F%AF%E4%BB%A5%E6%80%8E%E4%B9%88%E5%86%99%3F%E6%88%91%E5%A4%A7%E6%A6%82%E7%9A%84%E6%83%B3%E6%B3%95%E6%98%AFf%3D%40%28x%2Cy%2Cz%2Cw%29+x%2By%2B%EF%BC%88z-w%EF%BC%89%5E2)
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
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,
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
xx = X(:);
yy = Y(:);
zz = Z(:);
ww = W(:);
qq = q(:);
maxq = max(qq)
index = find(q == maxq);
x = xx(index)
y = yy(index)
z = zz(index)
w = ww(index)
f(x,y,z,w) % 验证后和maxq是一致的,32