【问题标题】:Matlab code for generating a particular class of matrices用于生成特定类矩阵的 Matlab 代码
【发布时间】:2015-04-30 14:43:21
【问题描述】:

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

  1. 矩阵是对称的。
  2. 条目是 0 和 1。
  3. 对角线元素为零。

我正在使用 Matlab2012b。你能帮我写代码吗?

我试图把它写下来。它需要很长的 for 循环序列。有更简单的技术吗?

【问题讨论】:

  • 为了回答您的问题,您应该提供您正在做什么以及您想做什么。您现在如何在 matlab 中创建矩阵?你期待什么样的输入,你期待什么样的输出?
  • 输入是矩阵的顺序。输出将是特定类的所有矩阵。

标签: matlab matrix


【解决方案1】:

试试这个:

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) 等。

【讨论】:

  • 很好地使用squareform ;)
  • 顺便说一句,您可以使用NaN 跳过预分配并从P 循环到1
  • @Shai 谢谢!是的,这可能会更快
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-20
相关资源
最近更新 更多