MATLAB 生成n阶对称矩阵,其中主对角线元素为0,其他元素为0或1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB 生成n阶对称矩阵,其中主对角线元素为0,其他元素为0或1相关的知识,希望对你有一定的参考价值。

参考技术A 楼主如果指的是随机生成的话,例如n=10时,可以用这样的语句:
n = 10;
temp = randint(n,n);
matrix = tril(temp,-1)+triu(temp',0);
matrix=matrix-diag(diag(matrix));

lz有不明白的可以 doc 函数名
参考技术B 先做一个全是0的矩阵,然后对不是0的位置逐个赋值 参考技术C n=10;
A=eye(10);
for i=1:1:size(A)
A(i,i)=0;
end
A

第四周编程总结

第一题
输入一个正整数 n (1≤n≤10)和n 阶方阵a的元素,如果方阵a中的所有元素都沿主对角线对称,输出“Yes”, 否则,输出“No”。主对角线为从矩阵的左上角至右下角的连线,方阵a中的所有元素都沿主对角线对称指对所有i, k,a[i][k]和a[k][i]相等。
一、实验代码

include <stdio.h>

int main(void)
{
int found, i, k, n;
int a[10][10];

scanf ("%d", &n);
for (i = 0; i < n; i++) 
    for (k = 0; k < n; k++)
        scanf("%d", &a[i][k]);

found = 1;
for (i = 0; i < n; i++){    
    for (k = 0; k < i; k++){
    if (a[i][k]!=a[k][i])  {      
        found=0;          
                break;
                     }
    }
    if (found==0){
        break;
    }
}

if (found != 0){
    printf("Yes
");
}  
else{
    printf("No
");
}  
return 0;

}
二、设计思路(只包含填空内容)
第一步:a[i][k]不等于a[k][i],则found等于0,break跳出。
第二步:跳出进行判断,found是否等于0
第三步:输出结果

以上是关于MATLAB 生成n阶对称矩阵,其中主对角线元素为0,其他元素为0或1的主要内容,如果未能解决你的问题,请参考以下文章

线性空间维度的公式是啥?

matlab如何生成对角元素为无穷大,且对称的矩阵

请问,怎么用matlab生成一个随机对称的矩阵

第四周

什么是共轭矩阵?

第四周编程总结