声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1150|回复: 5

[编程技巧] 新手求助初级习题解法

[复制链接]
发表于 2007-4-25 07:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

习题2     实现函数function [A]=replicate(vect, num)
             向量vect被复制num次,最后返回矩阵A,vect既可以作为行也可以作为列,函数自动判断,要求不能调用repmat函数
例如>> a = [1,2,3,4]
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 = [1;2;3;4]
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 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-4-25 09:07 | 显示全部楼层
1.利用find.
2.参考repmat代码.

评分

1

查看全部评分

 楼主| 发表于 2007-4-25 14:28 | 显示全部楼层
第二题就是不能repmat阿
发表于 2007-4-26 10:01 | 显示全部楼层



xjzuo版主的意思是要你查看repmat的代码是如何实现的,然后仿照它来做。其实最简单的方法是用循环来做
发表于 2007-4-26 13:15 | 显示全部楼层
function a=replicate(vect,num)
[i,j]=size(vect);
if i==1
    for m=1:num
        a(m,:)=vect;
    end
else for m=1:num
        a(:,m)=vect;
    end
end
这样子就行了吧 我也是新手 程序里面有什么可以简化的 请指教
还有 怎么查看repmat的代码?
发表于 2007-4-26 14:45 | 显示全部楼层
还有 怎么查看repmat的代码?


看帖子: [转帖]MATLAB中的帮助指令
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-19 08:52 , Processed in 0.073200 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表