PDA

查看完整版本 : [求助]程序出错了,请帮帮忙


huanghuan
2008-11-01, 14:59
题目如下:
设计一个函数文件,要求输入一个方阵,该函数能统计出方阵中大于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
这是怎么回事呀?

anbcjys
2008-11-02, 08:08
你这个程序估计自己都不知道要干什么?syms要实现什么目的?b=rand 又是怎么回事?ij怎么来的?

meteora1005
2008-11-02, 21:50
其实这个函数几句话就能搞定:
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的思想来思考。

guofeng0108
2008-11-03, 02:10
三楼说的没有错!!!
要充分发挥MATLAB的简洁性!!