声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 912|回复: 6

[编程技巧] 初学者的简单问题,望高手指点

[复制链接]
发表于 2008-6-9 22:51 | 显示全部楼层 |阅读模式

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

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

x
1.
编制一个4阶矩阵,使其主对角线上元素都为0,与主对角线相邻元素都为1,其余元素都为2
2.
定义一个m函数完成阶乘运算,然后在命令窗口中调用它计算20!

4. 创建一个 5×5 矩阵,编程求出其最大值及其所处的位置.


小弟新学,希望前辈们帮我解答阿
回复
分享到:

使用道具 举报

发表于 2008-6-9 23:19 | 显示全部楼层
原帖由 东莱老牛 于 2008-6-9 22:51 发表
1.
编制一个4阶矩阵,使其主对角线上元素都为0,与主对角线相邻元素都为1,其余元素都为2。
2.
定义一个m函数完成阶乘运算,然后在命令窗口中调用它计算20!

4. 创建一个 5×5 矩阵,编程求出其最大值及其所处 ...


请LZ注意看置顶帖或搜索版面
第4个问题可以用max命令直接求,为什么还要编程呢?
doc max
 楼主| 发表于 2008-6-9 23:30 | 显示全部楼层
恩,小弟是初学,很多东西都不懂,总而言之,楼上万分感谢:@)
发表于 2008-6-10 08:14 | 显示全部楼层
第1个问题,自己编了一段代码,不足之处还请高手指点
第2个问题可以用factorial(N)实现,详细用法见doc factorial

  1. function A=matrixcase(N)
  2. clc
  3. %输入N>2
  4. %主对角线上元素都为0
  5. for k=1:N
  6.     A(k,k)=0;
  7. end
  8. %与主对角线相邻元素都为1
  9. for m=2:N
  10.     A(m,m-1)=1;
  11.     A(m-1,m)=1;
  12. end
  13. %其余元素都为2
  14. k=0;
  15. for m=3:N
  16.     k=k+1;
  17.     for n=1:k
  18.         A(m,n)=2;
  19.         A(n,m)=2;
  20.     end
  21. end
  22. end
复制代码

>> matrixcase(4)
ans =
     0     1     2     2
     1     0     1     2
     2     1     0     1
     2     2     1     0

评分

1

查看全部评分

发表于 2008-6-10 10:55 | 显示全部楼层
下面这个阶乘的程序仅供参考
  1. function f=jiecheng(n)
  2. f=prod(1:n);
复制代码

评分

1

查看全部评分

发表于 2008-6-10 12:52 | 显示全部楼层
第4个问题:

  1. function [B,C]=maxcase(A)
  2. clc
  3. %A=[1 2 3 4 78 6 10;15 46 78 3 6 9 7;15 46 78 15 9 6 3; 4 5 45 45 78 4 77];
  4. [m,n]=size(A);
  5. B(1)=-inf;
  6. k=1;
  7. for i=1:m
  8.     for j=1:n
  9.      if A(i,j)>B(1)
  10.          B=[];
  11.          B(1)=A(i,j);%最大值
  12.          k=1;
  13.          C(1,k)=i;%最大值的行标
  14.          C(2,k)=j;%最大值的列标
  15.      elseif A(i,j)==B(1)
  16.          k=k+1;
  17.          B(k)=A(i,j);%最大值
  18.          C(1,k)=i;%最大值的行标
  19.          C(2,k)=j;%最大值的列标
  20.      end
  21.     end
  22. end
  23. end
复制代码

评分

1

查看全部评分

发表于 2008-6-10 13:53 | 显示全部楼层

回复 4楼 的帖子

这样就行了,哈哈
function A=matrixcase(N)
clc
%输入N>2
%主对角线上元素都为0
A=2*ones(N,N);
for k=1:N
    A(k,k)=0;
end
%与主对角线相邻元素都为1
for m=2:N
    A(m,m-1)=1;
    A(m-1,m)=1;
end

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-3 06:32 , Processed in 0.084471 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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