2017-01-26 16 views
0

Matlabでは、要素が0または1のすべての可能な3x3三重対角行列を作成する必要があります。どうすればよいでしょうか?ありがとう。三重対角行列のMatlabs置換

+1

私は4つの可能な結果しかないと思います。彼らは非常に小さく、非常に少ないので、手でコードを書くことはできませんか? – gnovice

+0

@gnoviceあなたの定義に応じて、私は4、2^3、または2^9と数えます。 – beaker

+0

@beaker:私は、各行列が3つの対角に1で満たされていなければならないと仮定しました。私は各対角が1で完全に満たされていないと推測します。 – gnovice

答えて

1

あなたはそれ海峡前方の操作を行うことができます

x1 = dec2bin(0:127) == '1'; 
x2 = [x1(:, 1:2) zeros(128, 1) x1(:, 3:5) zeros(128, 1) x1(:, 6:end)]; 
x3 = arrayfun(@(k) reshape(x2(k, :), [3 3]), 1:128, 'UniformOutput', false); 

x3は今、すべての3x3の三重対角行列をもつセル配列です。

+0

@BorisTありがとうございます。私はそれを感謝します。私が行列をexapndする必要がある場合(つまりサイズを変更する必要がある場合)には、そのコードのいくつかに慣れていないので、各行を説明できますか? – Claire

+0

@ BorisT.Iそれを感謝します。ちょうど私が行列を拡張する必要がある場合(つまりサイズを変更する必要がある場合)には、そのコードのいくつかに慣れていないので、各行について説明できますか? – Claire

関連する問題