第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創(chuàng)建指標矩陣

創(chuàng)建指標矩陣

哆啦的時光機 2019-11-19 14:31:04
對于大小為nx 1的向量V,我想創(chuàng)建大小為nx Max(V)的二進制指示符矩陣M,以使M的行條目在相應(yīng)的列索引中具有1,否則為0。例如:如果V是V = [ 3      2      1      4]指標矩陣應(yīng)為M= [ 0 0 1 0     0 1 0 0     1 0 0 0     0 0 0 1]
查看完整描述

3 回答

?
莫回?zé)o

TA貢獻1865條經(jīng)驗 獲得超7個贊

關(guān)于這樣的指標矩陣的事情是,如果使它稀疏會更好。無論如何,您幾乎總是會與它進行矩陣相乘,因此使該乘法成為有效的矩陣。


n = 4;

V = [3;2;1;4];

M = sparse(V,1:n,1,n,n);

M =

   (3,1)        1

   (2,2)        1

   (1,3)        1

   (4,4)        1

如果您堅持說M是一個完整矩陣,那么事后就可以通過使用full使它變得如此簡單。


full(M)

ans =

     0     0     1     0

     0     1     0     0

     1     0     0     0

     0     0     0     1

了解如何使用稀疏矩陣。這樣做將使您受益匪淺。誠然,對于4x4矩陣,稀疏不會帶來太多收益。但是這些示例案例從來都不是您真正的問題。假設(shè)n確實是2000?


n = 2000;

V = randperm(n);

M = sparse(V,1:n,1,n,n);

FM = full(M);


whos FM M

  Name         Size                 Bytes  Class     Attributes


  FM        2000x2000            32000000  double              

  M         2000x2000               48008  double    sparse    

稀疏矩陣不僅會在使用的內(nèi)存方面獲得收益。比較單個矩陣相乘所需的時間。


A = magic(2000);


tic,B = A*M;toc

Elapsed time is 0.012803 seconds.


tic,B = A*FM;toc

Elapsed time is 0.560671 seconds.


查看完整回答
反對 回復(fù) 2019-11-19
?
智慧大石

TA貢獻1946條經(jīng)驗 獲得超3個贊

您可以簡單地將列索引V與行索引結(jié)合在一起以創(chuàng)建線性索引,然后使用它來填充M(初始化為零):


M = zeros(numel(V), max(V));

M((1:numel(V))+(V.'-1).*numel(V)) = 1;


查看完整回答
反對 回復(fù) 2019-11-19
  • 3 回答
  • 0 關(guān)注
  • 666 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號