zaddict 发表于 2007-4-25 07:07

新手求助初级习题解法

习题1  实现函数function =matchCount(A,num)
     A为一个矩阵,num为一个数字
     要求这个函数计算这个num在A中作为矩阵元素出现的次数
例如>> A =
A =
    1 2
    2 3
>> matchCount(A,2)
ans =
2
>>

习题2   实现函数function =replicate(vect, num)
             向量vect被复制num次,最后返回矩阵A,vect既可以作为行也可以作为列,函数自动判断,要求不能调用repmat函数
例如>> a =
a =
1 2 3 4
>> replicate(a,5)
ans =
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
>>

或者
>> a =
a =
1
2
3
4
>> replicate(a,5)
ans =
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
>>

请问怎么写比较好?

[ 本帖最后由 eight 于 2007-4-25 09:06 编辑 ]

xjzuo 发表于 2007-4-25 09:07

1.利用find.
2.参考repmat代码.

zaddict 发表于 2007-4-25 14:28

第二题就是不能repmat阿

eight 发表于 2007-4-26 10:01

原帖由 zaddict 于 2007-4-25 14:28 发表 http://forum.vibunion.com/forum/images/common/back.gif
第二题就是不能repmat阿


xjzuo版主的意思是要你查看repmat的代码是如何实现的,然后仿照它来做。其实最简单的方法是用循环来做

illyq 发表于 2007-4-26 13:15

function a=replicate(vect,num)
=size(vect);
if i==1
    for m=1:num
      a(m,:)=vect;
    end
else for m=1:num
      a(:,m)=vect;
    end
end
这样子就行了吧 我也是新手 程序里面有什么可以简化的 请指教
还有 怎么查看repmat的代码?

eight 发表于 2007-4-26 14:45

还有 怎么查看repmat的代码?

看帖子: [转帖]MATLAB中的帮助指令
页: [1]
查看完整版本: 新手求助初级习题解法