| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
|  | 
|  | 
|  2008-06-28, 20:06 | #1 | 
| 初级会员 注册日期: 2007-12-01 
					帖子: 2
				声望力: 0  |  求助:一个避免使用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; | 
|   |   | 
|  2008-06-28, 23:54 | #2 | 
| 高级会员 注册日期: 2008-04-02 年龄: 47 
					帖子: 175
				声望力: 21  |   
			
			估计LZ提供的子函数不是你实际使用的子函数吧,因为按上面的子函数写法,通过B=f(A)调用是可行的。
		 | 
|   |   | 
|  2008-06-29, 02:32 | #3 | 
| 高级会员 注册日期: 2007-12-02 年龄: 44 
					帖子: 303
				声望力: 31     |   
			
			不用调子程序,直接 A+1 行不?  :lovely:
		 | 
|   |   | 
|  2008-06-29, 16:30 | #4 | 
| 高级会员 注册日期: 2008-04-02 年龄: 47 
					帖子: 175
				声望力: 21  |   | 
|   |   | 
|  2008-06-30, 13:16 | #5 | 
| 游客 
					帖子: n/a
				 |   | 
|   | 
|  | 
| 主题工具 | |
| 显示模式 | |
| 
 |  | 
|  相似的主题 | ||||
| 主题 | 主题作者 | 版面 | 回复 | 最后发表 | 
| [求助]界面设计中如何在显示结果, | 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 |