- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
文档全是精心选出来的精品资料,绝对值得下载!
数学建模上机实验(二)
姓名 学号 班级 1 本实验在上次生成的矩阵A的基础上进行,首先产生另外一个大小完全相同(9*10)的0矩阵B,然后对A进行如下判断,并对B赋值。
求取矩阵A的最大值,不妨设A(i1,j1)为矩阵的最大值,则将矩阵B的B(i1,j1)赋值为1;(不允许用max函数)
求取矩阵A中除(i1,j1)以外的其它位置的最大值,不妨设最大值为A(i2,j2),则将矩阵B中的B(i2,j2)赋值为2;
求取矩阵A中除(i1,j1)、(i2,j2)以外的其它位置的最大值,不妨设最大值为A(i2,j2),则将矩阵B中的B(i2,j2)赋值为2;
……………
循环如此继续,直到B中的所有元素均非0,循环终止。
注意:因为矩阵A中学号必然会出现重复,故一定会有某次求得的最大值不只一个,请思考这样的问题该怎样解决。
示例如下:
A
50
60
70
60
90
40
40
20
80
B
5
4
3
4
1
6
6
7
2
备注:
1 注意掌握基本的Matlab语句和函数
2 注意掌握脚本、函数的编写和调试
3 要求每行程序都有注释 问题的分析和假设:
首先,生成一个9*10的0矩阵,用zeros函数生成;
其次,以n为循环,每次选出C中现有的最大值给max【n】,
最后,赋给对应的B中得值n,再把对应位置C上的改成0.并每一步都判断是否有相同的最大元素,如有则一同将其赋给对应的B中得值n,再把对应位置C上的改成0.
建模:
生成一个9*10的0矩阵:B=zeros(9,10) ;
把A赋给C :C=A ;
生产三个单位向量:M=ones(1,90);I=ones(1,90);J=ones(1,90);
以n为循环,每次选出C中现有的最大值给max【n】
再赋给对应的B中得值n,再把对应位置C上的改成0.
求解的Matlab程序代码:
B=zeros(9,10) ; % 产生另外一个大小完全相同(9*10)的0矩阵B
C=A ;% 把A赋给C
M=ones(1,90);I=ones(1,90);J=ones(1,90);
for n=1:1:90
M(1,n)=0
for i=1:1:9
for j=1:1:10
if M(1,n)C(i,j)
M(1,n)=C(i,j)
I(1,n)=i
J(1,n)=j
end
end
end
B(I(1,n),J(1,n))=n;
C(I(1,n),J(1,n))=0;
end % 以n为循环,每次选出C中现有的最大值给max【n】,再赋给对应的B中得值n,再把对应位置C上的改成0.
B 计算结果与问题分析讨论:
B =
Columns 1 through 9
3 4 5 6 7 8 9 10 1
12 2 13 14 15 16 17 18 19
21 22 23 24 25 26 27 28 29
31 32 33 34 35 36 37 38 39
41 42 43 44 45 46 47 48 49
51 52 53 54 55 56 57 58 59
61 62 63 64 65 66 67 68 69
71 72 73 74 75 76 77 78 79
81 82 83 84 85 86 87 88 89
Column 10
11
20
30
40
50
60
70
80
90
文档评论(0)