EDA365电子论坛网
标题:
matlab如何提取矩阵中一定间隔的数据
[打印本页]
作者:
aid4her
时间:
2023-1-29 16:52
标题:
matlab如何提取矩阵中一定间隔的数据
请问,如下图,我有一个每10min一次的数据矩阵(图1),需要提取另一个矩阵(图2)中,这10min内的所有数据,进行函数计算,请问应该用什么?之前试过find,好像不行,数据量太大了,没办法一个一个挑出来。图1:
5 e2 l* Y9 N- B6 w+ h+ J) p
下载.png
(11.63 KB, 下载次数: 6)
下载附件
保存到相册
2023-1-29 16:52 上传
$ m9 A3 B% U1 M
图2:
; _, n$ r' S: E
下载 (1).png
(20.99 KB, 下载次数: 8)
下载附件
保存到相册
2023-1-29 16:52 上传
/ ^/ \0 L- d+ o; a* U
作者:
I_believe
时间:
2023-1-29 17:43
用 histogram函数(超链接,自己点进去看) 分组,照着 Specify Bin Edges of Histogram 示例仿写。
作者:
TEL15286598
时间:
2023-1-29 17:46
举个简单例子
: A) _4 \: D# o9 L4 M6 o1 X# E! l
M = ( 0 : 1 : 25 ).' / 25; % 数据
, d1 c4 D$ k8 h+ a% S p0 N
BinRanges = [ 0, 5, 10, 13 ] / 25; % 分组边界
6 r# w% P0 d% h3 X" u9 {$ b8 l
[ ~, ind ] = histc( M( : ), BinRanges ); % 分组
0 G/ H8 `; z) ?% [6 ~, Z! M a
for ii = min( ind ) : 1 : max( ind )
+ }4 ]3 V% q: K6 [
fprintf( 'index = %d\n', ii );
a& |/ F0 n+ U6 ?9 g
disp( M( ind == ii ) ); % 显示该组中的数据
' p" z: _( f. h, @3 r
end
" m6 ~0 G+ J( O# _( k
%%
2 l5 T! h5 f) p6 D3 G- t4 P2 ]
[ ~, ~, bin ] = histcounts( M( : ), BinRanges ); % 同理
' X. I6 g% a, l. B
for ii = min( bin ) : 1 : max( bin )
/ s* E7 |2 z# O/ e# U) c* p* Q
fprintf( 'index = %d\n', ii );
) _/ [+ B2 v$ F1 P" U! w
disp( M( bin == ii ) );
$ O3 f% w# V2 D! k: i$ {3 q; c
end
9 P% E$ @4 \) j4 \. m0 W
对边界稍微留意些,不同函数分组时,对下界、上界端点是否分在该组内,需要你自己验证一下,可能需要适当调整初始的分组边界。
# `4 h$ C! d" A" Q l3 W
最后,这种数据不太适合放矩阵数组,因为分组后每组数据个数可能不同,可能需要存到 cell型 元胞数组中。
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2