东莱老牛 发表于 2008-6-9 22:51

初学者的简单问题,望高手指点

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

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


小弟新学,希望前辈们帮我解答阿

ch_j1985 发表于 2008-6-9 23:19

原帖由 东莱老牛 于 2008-6-9 22:51 发表 http://www.chinavib.com/forum/images/common/back.gif
1.
编制一个4阶矩阵,使其主对角线上元素都为0,与主对角线相邻元素都为1,其余元素都为2。
2.
定义一个m函数完成阶乘运算,然后在命令窗口中调用它计算20!

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

请LZ注意看置顶帖或搜索版面
第4个问题可以用max命令直接求,为什么还要编程呢?
doc max

东莱老牛 发表于 2008-6-9 23:30

恩,小弟是初学,很多东西都不懂,总而言之,楼上万分感谢:@)

ch_j1985 发表于 2008-6-10 08:14

第1个问题,自己编了一段代码,不足之处还请高手指点
第2个问题可以用factorial(N)实现,详细用法见doc factorial

function A=matrixcase(N)
clc
%输入N>2
%主对角线上元素都为0
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
%其余元素都为2
k=0;
for m=3:N
    k=k+1;
    for n=1:k
      A(m,n)=2;
      A(n,m)=2;
    end
end
end

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

sogooda 发表于 2008-6-10 10:55

下面这个阶乘的程序仅供参考function f=jiecheng(n)
f=prod(1:n);

ch_j1985 发表于 2008-6-10 12:52

第4个问题:

function =maxcase(A)
clc
%A=;
=size(A);
B(1)=-inf;
k=1;
for i=1:m
    for j=1:n
   if A(i,j)>B(1)
         B=[];
         B(1)=A(i,j);%最大值
         k=1;
         C(1,k)=i;%最大值的行标
         C(2,k)=j;%最大值的列标
   elseif A(i,j)==B(1)
         k=k+1;
         B(k)=A(i,j);%最大值
         C(1,k)=i;%最大值的行标
         C(2,k)=j;%最大值的列标
   end
    end
end
end

wwbeyondww 发表于 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]
查看完整版本: 初学者的简单问题,望高手指点