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)) );
這個例子的結果是:
>> 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)之前計算掩碼來節(jié)省時間:
[M N] = size(A);
col = 1:N;
mask = bsxfun(@gt, col, x) & bsxfun(@le, col, (N-y));
然后在每次迭代時你只需要應用預先計算的掩碼:
B = A.*mask;
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的matlab 不同长度的向量放入一个矩阵,Matlab:将不同长度的行叠加到矩阵上的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一般单纯形法的matlab程序,实验报告
- 下一篇: matlab人脸追踪,求大神帮助我这个菜