提供一個方法:n=10;%可以改成你想要的數A=zeros(n);index=randperm(n);%生成隨機排列是關鍵A((n)*(0:n-1)+index)=1因為是隨機序列,所以每次都不一樣,一個結果:A = 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 用迴圈實在沒必要,n較大的時候嚴重影響計算速度,不過好程式設計:for k=1:n A(index(k),k)=1end效果是一樣的,不再囉嗦了。
提供一個方法:n=10;%可以改成你想要的數A=zeros(n);index=randperm(n);%生成隨機排列是關鍵A((n)*(0:n-1)+index)=1因為是隨機序列,所以每次都不一樣,一個結果:A = 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 用迴圈實在沒必要,n較大的時候嚴重影響計算速度,不過好程式設計:for k=1:n A(index(k),k)=1end效果是一樣的,不再囉嗦了。