CAD教程 行业资讯 3D模型下载 Pro/E教程 CAD书店 软件下载 联系我们
技术资料 CAD招聘 发布招聘 CAD问答 设计竞赛 CAD认证 北京CAD培训
视频教程 PS教程 CAD图纸 图书推荐 Solidworks教程 CAD培训 CAD软件商

 最新视频教程Pro/ENGINEER Wildfire2.0 工业设计实例视频教程 (全套免费在线学习)   AutoCAD视频教程每日更新
 
首页 > CAD在线问答 > matlab

用matlab的解一道题

2010-10-28 51自学网



若X是一个 256 X 256 矩阵,请编写一个函数,要求格式为 Y=function_name(X, n),其中 n 是一个正整数(<=256*256),该函数只保留X矩阵里绝对值最大的 n 个元素,其他元素值设为零,输出到Y矩阵。测定n=500时程序的运行时间提示:参考函数 max 和 sort 等。
用两种方法解决, 高手路过,请留下一臂之力!不胜感激!!!!

以下两个函数分别用sort和max解决。(1)用参考函数sortfunction Y=function_name(X,n) [a,b]=sort(abs(X(:)));%将矩阵X中的所有元素按从小到大排列,a记录数据,b记录数据位置。X(b(1:end-n))=0; Y=X; %将矩阵X中的前end-n个(end代表矩阵X总的元素个数)元素设为0,其他位置的元素值不变。(2)用参考函数maxfunction Y=function_name(X,n) Y=zeros(size(X));%预先给矩阵Y赋一个值(与X同大小的零矩阵)。k=0;while k<n [a,b]=max(abs(X(:))); Y(b)=X(b);X(b)=0; k=k+1;end% 下面是测试:%X=randn(256); tic; Y=function_name(X,500); toc%X=randn(2); tic; Y=function_name(X,3); toc很显然,方法(1)耗时较少,这充分体现了Matlab数组运算的优点。



 

 

关于matlab
MATLAB:哪位大侠帮我找找错误,万分感激............
我来回答 共有条 回答
用户名: 密码:
验证码: 匿名发表
| AutoCAD | Pro/E | UG | 3Dmax | catia | solidworks | maya | photoshop | 模具设计 | 有限元 | matlab | 计算机图形学 | 室内设计 |