24小时热门版块排行榜    

查看: 1217  |  回复: 6

xiashaoyan

新虫 (正式写手)

[求助] MATLAB带有两重循环程序怎么改为向量话编程呢? 已有1人参与

我想用MATLAB向量化编程,遇到一些问题,下面我用下面这个案例说明一下我的问题
下面是一个MATLAB中arrayfun函数的案例,是个正确的代码,能运行程序
R1=1:100;
R2=1:100;
R3=1:100;
R = arrayfun( @zxy,R1,R2,R3);
function funz =zxy(x,y,z)
  funz = x+y.*z;
end
1.问题1:如果funz.m文件中需要调用一个变量的值(比如下面的例子中的a),怎么设置呢?比如:
R1=1:100;
R2=1:100;
R3=1:100;
a=5;
R = arrayfun( @zxy(R1,R2,R3,a),R1,R2,R3);
function funz =zxy(x,y,z,1)
  funz = a*x+y.*z;
end

然后MATLAB报错,说
Error: File: Untitled2.m Line: 5 Column: 19
Unbalanced or unexpected parenthesis or bracket.

所以我想问的问题,怎么在arrayfun函数中调用a的值呢???

问题2:
我发现最开始运行正确的程序中,R矩阵的大小和R1,R2,R3矩阵大小都一样,都是1*100,也就是说
R1=1:100;
R2=1:100;
R3=1:100;
R = arrayfun( @zxy,R1,R2,R3);
function funz =zxy(x,y,z)
  funz = x+y.*z;
end
在计算的过程中是R1,R2,R3是一一对应的,但是如果不是一一对应,而是每个R1值对应R2=1:100呢?
比如说我想用MATLAB向量化编程实现下面用for循环,但是怎么实现呢???

for R1=1:100
     for R2=1:100
           for R3=1:100
                 R =R1+R2*R3;
           end
      end
end
现在我想用MATLAB想量化实现,比如用arrayfun、cellfun、spfun函数,但是针对这个问题,我不知道用这几个函数中的哪一个?
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

大约是加点,形如
R. =R1.+R2.*R3.;
你可以试一试
2楼2015-09-10 20:28:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiashaoyan

新虫 (正式写手)

引用回帖:
2楼: Originally posted by feixiaolin at 2015-09-10 20:28:10
大约是加点,形如
R. =R1.+R2.*R3.;
你可以试一试

问题2我已经解决了,现在主要是问题1,设计到一些参数的调用,不知道arrayfun函数能不能调用类似a这样的变量值
3楼2015-09-10 23:49:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

引用回帖:
3楼: Originally posted by xiashaoyan at 2015-09-10 23:49:44
问题2我已经解决了,现在主要是问题1,设计到一些参数的调用,不知道arrayfun函数能不能调用类似a这样的变量值...

感觉 R = arrayfun( @zxy(R1,R2,R3,a),R1,R2,R3);
成了嵌套调用,语法有问题
4楼2015-09-11 05:56:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiashaoyan

新虫 (正式写手)

是呀,我感觉这个函数不能这么写。那么怎么解决问题二这种问题呢?因为这种问题我感觉也经常遇到吧

发自小木虫Android客户端
5楼2015-09-11 06:33:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mygt_hit

专家顾问 (职业作家)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
xiashaoyan: 金币+3, 有帮助 2015-09-12 00:39:50
是否可以考虑下函数重载,也就是在函数内部增加代码,判断输入参数是单个数还是向量,然后做相应的处理。
知其然,知其所以然。
6楼2015-09-11 16:58:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiashaoyan

新虫 (正式写手)

引用回帖:
6楼: Originally posted by mygt_hit at 2015-09-11 16:58:22
是否可以考虑下函数重载,也就是在函数内部增加代码,判断输入参数是单个数还是向量,然后做相应的处理。

这个可以考虑,但是比较消耗时间,不过现在这个问题我通过其他办法解决了,谢谢您的回复哈。
7楼2015-09-12 00:39:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xiashaoyan 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 299求调剂 +5 某某某某位 2026-03-21 5/250 2026-03-23 23:36 by 热情沙漠
[考研] 一志愿华东理工大学081700,初试分数271 +4 kotoko_ik 2026-03-23 5/250 2026-03-23 23:23 by 呆呆师姐
[考研] 384求调剂 +3 子系博 2026-03-22 6/300 2026-03-23 21:45 by 子系博
[考研] 269求调剂 +4 我想读研11 2026-03-23 4/200 2026-03-23 21:25 by pswait
[考研] 303求调剂 +4 元夕元 2026-03-20 4/200 2026-03-23 19:00 by macy2011
[考研] 石河子大学(211、双一流)硕博研究生长期招生公告 +3 李子目 2026-03-22 3/150 2026-03-22 21:01 by 怎么释怀
[考研] 一志愿西安交通大学材料工程专业 282分求调剂 +11 枫桥ZL 2026-03-18 13/650 2026-03-22 20:26 by edmund7
[考研] 318求调剂 +4 plum李子 2026-03-21 7/350 2026-03-22 14:17 by ColorlessPI
[考研] 303求调剂 +5 安忆灵 2026-03-22 6/300 2026-03-22 12:46 by 素颜倾城1988
[考研] 一志愿华中科技大学071000,求调剂 +4 沿岸有贝壳6 2026-03-21 4/200 2026-03-22 07:21 by ilovexiaobin
[考研] 0703化学调剂 +4 妮妮ninicgb 2026-03-21 4/200 2026-03-21 18:39 by 学员8dgXkO
[考研] 求调剂 +3 白QF 2026-03-21 3/150 2026-03-21 13:12 by zhukairuo
[考研] 材料学学硕080502 337求调剂-一志愿华中科技大学 +4 顺顺顺mr 2026-03-18 5/250 2026-03-21 10:22 by luoyongfeng
[考研] 332求调剂 +4 ydfyh 2026-03-17 4/200 2026-03-21 02:20 by JourneyLucky
[考研] 324分 085600材料化工求调剂 +4 llllkkkhh 2026-03-18 4/200 2026-03-21 01:24 by JourneyLucky
[考研] 一志愿中海洋材料工程专硕330分求调剂 +8 小材化本科 2026-03-18 8/400 2026-03-20 23:16 by JourneyLucky
[考研] 一志愿 西北大学 ,070300化学学硕,总分287,双非一本,求调剂。 +4 晨昏线与星海 2026-03-19 4/200 2026-03-20 22:15 by JourneyLucky
[考研] 086500 325 求调剂 +3 领带小熊 2026-03-19 3/150 2026-03-20 18:38 by 尽舜尧1
[考研] 0703化学调剂 +5 pupcoco 2026-03-17 8/400 2026-03-19 13:58 by houyaoxu
[考研] 材料考研调剂 +3 xwt。 2026-03-19 3/150 2026-03-19 11:22 by w沐阳w
信息提示
请填处理意见