【matlab学习笔记】长矩阵分割

今天处理语音信息的时候生成了一段3716*12的语音特征值,要把它分割成500*12的小块。

首先想到用matlab的reshape函数,但是reshape只能改变一个矩阵的形状,无法分割。后来发现原来还有三次矩阵这么个东西!

要分割的矩阵为 

c <3716*12 double>

mod(3716,500) = 7

先申明一个500*7=3500行空间准备存放每一个小矩阵,末尾的216行就丢弃了。

voices = zero(500,12,7);

然后用循环

for i = 1:7

voices(:,:,i) = c(500*(i-1)+1:500*i,:);

end

这样一个长矩阵就分割好啦。


分好的矩阵形式上是在一块的,但逻辑上已经分开了,比如要看第二个矩阵

voices(:,:,2);

就可以查询到。

</pre><pre name="code" class="html"><pre name="code" class="plain">c = rand(3716,12); 
voices = zeros(500,12,7);
for i = 1:1:7
voices(:,:,i) = c(500*(i-1)+1:500*i,:);
end

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值