bas*_*ibe 8 matlab matrix reshape
假设我有一个12乘12矩阵,我想把它调整为4乘3矩阵.我怎么能这样做?
我目前的解决方案有点难看:
for n = 1:(length(mat)/3)
out(n,1:3) = mat( ((n-1)*3 + 1):((n-1)*3 + 3) );
end
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
小智 24
reshape当然是正确的解决方案,如@gnovice所述.
一个很好的功能reshape是它允许这样:
A = 1:12;
B = reshape(A,4,[]);
B =
1 5 9
2 6 10
3 7 11
4 8 12
Run Code Online (Sandbox Code Playgroud)
因此,如果您不知道将有多少列,reshape将为您计算它.同样,reshape如果你把它留出来,将填写行数.
C = reshape(A,[],4)
C =
1 4 7 10
2 5 8 11
3 6 9 12
Run Code Online (Sandbox Code Playgroud)
gno*_*ice 12
尝试RESHAPE功能:
A = (1-by-12 matrix);
B = reshape(A,4,3);
Run Code Online (Sandbox Code Playgroud)
注意,矩阵B将以列方式填充来自A的元素(即,列将从顶部到底部填充,从左向右移动).
例:
>> A = 1:12;
>> B = reshape(A,4,3)
B =
1 5 9
2 6 10
3 7 11
4 8 12
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41597 次 |
| 最近记录: |