回覆列表
  • 1 # 滴逃逃

    提供一個方法:

    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)=1

    end

    效果是一樣的,不再囉嗦了。

  • 中秋節和大豐收的關聯?
  • 口袋,在你們那叫什麼?特別是方言怎麼說?