matlab 不同长度的向量放入一个矩阵,Matlab:将不同长度的行叠加到矩阵上
你可以這樣做:
A = rand(4,6); %// example data
x = [1; 2; 1; 3]; %// example data
y = [1; 2; 1; 2]; %// example data
[M N] = size(A);
col = 1:N;
B = A.* ( bsxfun(@gt, col, x) & bsxfun(@le, col, (N-y)) );
這個(gè)例子的結(jié)果是:
>> A
A =
0.0168 0.8797 0.7367 0.9859 0.5385 0.9745
0.9274 0.4161 0.0567 0.0649 0.7961 0.1616
0.3935 0.8690 0.8386 0.0308 0.5494 0.5525
0.7615 0.1895 0.0002 0.0919 0.7167 0.6101
>> B
B =
0 0.8797 0.7367 0.9859 0.5385 0
0 0 0.0567 0.0649 0 0
0 0.8690 0.8386 0.0308 0.5494 0
0 0 0 0.0919 0 0
如果在主循環(huán)的所有迭代中 x 和 y 相同,則可以通過在循環(huán)之前計(jì)算掩碼來節(jié)省時(shí)間:
[M N] = size(A);
col = 1:N;
mask = bsxfun(@gt, col, x) & bsxfun(@le, col, (N-y));
然后在每次迭代時(shí)你只需要應(yīng)用預(yù)先計(jì)算的掩碼:
B = A.*mask;
與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的matlab 不同长度的向量放入一个矩阵,Matlab:将不同长度的行叠加到矩阵上的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一般单纯形法的matlab程序,实验报告
- 下一篇: 花呗提额锁定多久