Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-10-09
年龄: 37
帖子: 26
声望力: 17 ![]() |
![]()
题目如下:
设计一个函数文件,要求输入一个方阵,该函数能统计出方阵中大于0,等于0和小于0的元素的个数。 程序如下: function [a]=num(b) b=rand(i,j) syms n for i=0:n j=i k=0 %k为等于0元素的个数 l=0 %l为大于0元素的个数 m=0 %m为小于0元素的个数 for h=0:i s=0:j if b(h,s)==0 k=k+1; else if b(h,s)>0 l=l+1; else b(h,s)<0 m=m+1; end end k end l end m 运行时出现这样的提示: ??? Unable to find subsindex function for class sym. Error in ==> C:\MATLAB6p5\work\num.m On line 11 ==> if b(h,s)==0 这是怎么回事呀? |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2008-09-14
年龄: 43
帖子: 351
声望力: 24 ![]() |
![]()
你这个程序估计自己都不知道要干什么?syms要实现什么目的?b=rand 又是怎么回事?ij怎么来的?
__________________
qq604443022 |
![]() |
![]() |
![]() |
#3 |
高级会员
注册日期: 2008-05-31
年龄: 38
帖子: 104
声望力: 19 ![]() |
![]()
其实这个函数几句话就能搞定:
function n=num(b) n=ones(3,1); n(1)=length(find(b>0)); n(2)=length(find(b=0)); n(3)=length(find(b<0)); 既然你用matlab编程,就应该用matlab的思想来思考。 |
![]() |
![]() |
![]() |
#4 |
高级会员
注册日期: 2008-10-21
年龄: 40
帖子: 198
声望力: 22 ![]() ![]() |
![]()
三楼说的没有错!!!
要充分发挥MATLAB的简洁性!!
__________________
matlab太高深了!!!!!!!:ft: |
![]() |
![]() |