2017-11-02 15 views
0

사용자가 고유 값 목록을 요구하고, 해당 개수의 정점을 가진 모든 가능한 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 루프를 구조화하는 방법에 대한 아이디어가 있습니까?

답변

0

1 - 사용자에게 허용 오차를 묻는 메시지가 필요합니다.

허용하여 EIG (L) 떨어져 2 라운드

3 테스트 주어진 값에 ismember(str2num(prompt2),round(eig(l),tol))

EDIT

ismember 것을 통해 둥근 세트에 속하면 M by N 이진 행렬을 생성하십시오. Mat = randi([0 1], M, N)

+0

고맙습니다! 나는 많은 변화를 만들었지 만 여전히 문제가있는 부분 중 하나는 for 루프가 실행될 때 벡터와 행렬 만 반환한다는 것입니다. 이것은 프로그램이 행렬 대신 벡터의 고유 값 (작동하지 않는)을 취하려고 시도하게합니다. for 루프를 다시 포맷하여 고유 값을 올바르게 가져 오는 방법을 알고 있습니까? – CharlesLyleLarue