【问题标题】:Getting the eigenvalues in a list from a list of matrices从矩阵列表中获取列表中的特征值
【发布时间】:2017-11-02 21:17:03
【问题描述】:

我希望我的代码提示用户输入特征值列表,遍历具有该顶点数的每个可能的 0,1 矩阵,创建所有可能特征值的列表,如果任何匹配用户输入的内容,它返回对应的矩阵。卡在这里无法正确迭代:

prompt='How many eigenvalues: ';
x=input(prompt);
prompt2='Enter Eignevalues: ';
y=input(prompt2,'s');
combs=dec2base(0:power(2,x*x)-1,2)-'0';
combs_matshaped=reshape(permute(combs,[3 2 1]),x,x,[]);
for l=combs_matshaped
    disp(eig(l))
end

关于如何构造 for 循环的任何想法?

【问题讨论】:

    标签: matlab matrix linear-algebra eigenvalue


    【解决方案1】:

    1-您还需要提示用户提供容差。

    通过容差对 eig(l) 进行 2 次舍入

    3-测试给定值是否属于通过ismember 的舍入集 类似ismember(str2num(prompt2),round(eig(l),tol))

    编辑

    要生成 M × N 二进制矩阵,请使用 Mat = randi([0 1], M, N)

    【讨论】:

    • 谢谢!我做了很多更改,但我仍然遇到问题的一个部分是,当 for 循环运行时,它只返回向量而不返回矩阵。这导致程序试图获取向量的特征值(这不起作用)而不是矩阵。你知道如何重新格式化 for 循环以便正确获取特征值吗?
    猜你喜欢
    • 2022-01-05
    • 2014-02-08
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    相关资源
    最近更新 更多