初学者的简单问题,望高手指点
1.编制一个4阶矩阵,使其主对角线上元素都为0,与主对角线相邻元素都为1,其余元素都为2。
2.
定义一个m函数完成阶乘运算,然后在命令窗口中调用它计算20!
4. 创建一个 5×5 矩阵,编程求出其最大值及其所处的位置.
小弟新学,希望前辈们帮我解答阿 原帖由 东莱老牛 于 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 恩,小弟是初学,很多东西都不懂,总而言之,楼上万分感谢:@) 第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 下面这个阶乘的程序仅供参考function f=jiecheng(n)
f=prod(1:n); 第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
回复 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]