2017-11-02 14 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×N 2進行列を生成するMat = randi([0 1], M, N)

+0

ありがとうございました!私はたくさんの変更を加えましたが、私がまだ問題を抱えている部分は、forループが実行されたときに、ベクトルと行列だけを返します。これはプログラムが行列の代わりにベクトルの固有値を取ろうとしています(動作しません)。 forループを再構成して固有値を適切に取る方法を知っていますか? – CharlesLyleLarue

関連する問題