莫回无
关于这样的指标矩阵的事情是,如果使它稀疏会更好。无论如何,您几乎总是会与它进行矩阵相乘,因此使该乘法成为有效的矩阵。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矩阵,稀疏不会带来太多收益。但是这些示例案例从来都不是您真正的问题。假设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 稀疏矩阵不仅会在使用的内存方面获得收益。比较单个矩阵相乘所需的时间。A = magic(2000);tic,B = A*M;tocElapsed time is 0.012803 seconds.tic,B = A*FM;tocElapsed time is 0.560671 seconds.