Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-06-28, 20:06   #1
etoxp
初级会员
 
注册日期: 2007-12-01
帖子: 2
声望力: 0
etoxp 正向着好的方向发展
默认 求助:一个避免使用for循环的问题

==============报歉先前没有把我想要解决的问题说清楚,现在重新修改一下===============

function main
A=[-1 -2;3 4];
B=f(A)------>此句欲得到B=[-1 -1;1 1],
然而结果却是
>> main
B =
1
说白了就是,子程序中"if x<0 及y=-1,y=1"这些语句,都是对一个1*1的矩阵进行判断或赋值的,而不是对含有多个元素的矩阵。所以"B=f(A)"没有得到我想要的结果。
当然可以用for循环的方式,遍历A中每个元素,逐一调用f()来实现。
但我想避免使用for循环,而用简短高效的代码实现,可以怎么做呢???谢谢!

function y=f(x)
if x<0
y=-1;
else
y=1;
end



==============先前的提问===============
A=[1 2;3 4];
欲调用子程序f(),使A中每个元素都加1,怎么用简单的代码实现呢?
不用for循环,不修改子程序f()
我开始想就这样做:B=f(A),但程序报错通不过


function y=f(x)
y=x+1;
etoxp 当前离线   回复时引用此帖
旧 2008-06-28, 23:54   #2
watcher
高级会员
 
注册日期: 2008-04-02
年龄: 47
帖子: 175
声望力: 21
watcher 正向着好的方向发展
默认

估计LZ提供的子函数不是你实际使用的子函数吧,因为按上面的子函数写法,通过B=f(A)调用是可行的。
watcher 当前离线   回复时引用此帖
旧 2008-06-29, 02:32   #3
fanxing39
高级会员
 
注册日期: 2007-12-02
年龄: 44
帖子: 303
声望力: 31
fanxing39 是一位成功的新星fanxing39 是一位成功的新星fanxing39 是一位成功的新星fanxing39 是一位成功的新星
默认

不用调子程序,直接 A+1 行不?  :lovely:
fanxing39 当前离线   回复时引用此帖
旧 2008-06-29, 16:30   #4
watcher
高级会员
 
注册日期: 2008-04-02
年龄: 47
帖子: 175
声望力: 21
watcher 正向着好的方向发展
默认

引用:
作者: etoxp 查看帖子
==============报歉先前没有把我想要解决的问题说清楚,现在重新修改一下===============

function main
A=[-1 -2;3 4];
B=f(A)------>此句欲得到B=[-1 -1;1 1],
然而结果却是
>> main
...
if语句对向量无效,但是比较符号对向量有效,LZ的问题可以这样解决:
function y=f(x)
y=-(x<0)+(x>=0);
watcher 当前离线   回复时引用此帖
旧 2008-06-30, 13:16   #5
未注册
游客
 
帖子: n/a
默认

引用:
作者: etoxp 查看帖子
==============报歉先前没有把我想要解决的问题说清楚,现在重新修改一下===============

function main
A=[-1 -2;3 4];
B=f(A)------>此句欲得到B=[-1 -1;1 1],
然而结果却是
>> main
...
后面那个问题,没有问题
function main
A=[1,2;3,4];
B=f(A);

function y=f(x)
y = x + 1;
可以的。
  回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[求助]界面设计中如何在显示结果, yylyshyy MATLAB论坛 3 2008-08-12 19:50
[求助]请问在matlab中如何实现一维行数组和一维列数组相乘为矩阵的功能? daiweisc MATLAB论坛 1 2008-04-02 14:27
【求助】instrcallback触发问题 xukeuniversal MATLAB论坛 2 2008-01-27 09:55
【文章】仿真动画软件设计作品--电路开闭 yesman MATLAB论坛 0 2007-12-11 16:21


所有时间均为北京时间。现在的时间是 22:30


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.