生成一类特殊矩阵的Matlab代码

生成一类特殊矩阵的Matlab代码,matlab,matrix,Matlab,Matrix,我需要生成具有给定属性的n阶方阵 矩阵是对称的 条目为0和1 对角线元素是零 我正在使用Matlab2012b。你能帮我查一下密码吗 我想把它写下来。它需要一长串for循环。有更简单的方法吗?试试这个: N = 4; %// matrix size M = (N^2-N)/2; %// number of values to fill in each matrix P = 2^M; %// number of matrices x = dec2bin(0:P-1)-'0'; %// each r

我需要生成具有给定属性的n阶方阵

  • 矩阵是对称的
  • 条目为0和1
  • 对角线元素是零 我正在使用Matlab2012b。你能帮我查一下密码吗

    我想把它写下来。它需要一长串for循环。有更简单的方法吗?

    试试这个:

    N = 4; %// matrix size
    M = (N^2-N)/2; %// number of values to fill in each matrix
    P = 2^M; %// number of matrices
    x = dec2bin(0:P-1)-'0'; %// each row contains the values of a matrix, "packed" in a vector
    result = NaN(N,N,P); %// preallocate
    for k = 1:P
        result(:,:,k) = squareform(x(k,:)); %// unpack values
    end
    

    矩阵为
    result(:,:,1)
    result(:,:,2)
    等。

    为了回答您的问题,您应该提供您正在做的事情和希望做的事情。现在如何在matlab中创建矩阵?您期望的输入类型和输出类型是什么?输入是矩阵的顺序。输出将是特定类的所有矩阵。
    squareform的巧妙使用顺便说一句,您可以使用
    NaN
    跳过预分配,并从
    P
    循环到1@Shai谢谢是的,那可能更快