You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按10%比例拆分时间向量并存储所有子向量?

拆分时间向量为10%比例的子向量

嘿,我来帮你搞定这个问题!看起来你可能误解了“按10%比例拆分”的实现方式——你之前写的ten_percent_of_time_vector = time*10/100其实是把每个时间值缩小到原来的10%,而不是提取原向量中10%的部分。咱们来一步步解决这个拆分问题:

首先明确你的原时间向量:time = (0:3500)*(1/1000) 生成的是从0到3.5秒、步长1毫秒的序列,总共有3501个元素。我们需要把它拆分成10个连续的子向量,每个子向量占原向量的10%比例(这里分两种常见的拆分逻辑,你可以根据需求选择):

方法1:按元素数量的10%拆分

这种方式是把原向量的元素总数平均分成10份,处理非整数长度的情况(3501无法被10整除,所以最后一段会多1个元素):

% 生成原时间向量
time = (0:3500)*(1/1000);
total_length = length(time);
num_segments = 10;

% 计算每个子向量的长度:前9段各350个元素,最后一段351个
segment_lengths = ones(1, num_segments) * floor(total_length / num_segments);
segment_lengths(end) = total_length - sum(segment_lengths(1:end-1));

% 初始化cell数组存储子向量
time_segments = cell(1, num_segments);
current_position = 1;

% 循环拆分
for i = 1:num_segments
    end_position = current_position + segment_lengths(i) - 1;
    time_segments{i} = time(current_position:end_position);
    current_position = end_position + 1;
end

现在time_segments就是一个包含10个子向量的cell数组,每个子向量对应原向量的10%区间。

方法2:按时间范围的10%拆分

如果你的需求是按总时长的10%拆分(每段覆盖0.35秒),可以用数值区间来筛选:

% 生成原时间向量
time = (0:3500)*(1/1000);
total_duration = max(time) - min(time);
num_segments = 10;

% 生成时间区间的分界点
time_bins = linspace(min(time), max(time), num_segments + 1);

% 初始化cell数组存储子向量
time_segments = cell(1, num_segments);

% 循环拆分
for i = 1:num_segments
    % 筛选出当前区间内的时间点
    time_segments{i} = time(time >= time_bins(i) & time <= time_bins(i+1));
end

小提示:Python版本实现

如果你用的是Python(结合numpy),逻辑是完全相通的,代码示例如下:

import numpy as np

# 生成原时间向量
time = np.arange(0, 3501) * (1/1000)
total_length = len(time)
num_segments = 10

# 按元素数量拆分
segment_length = total_length // num_segments
remainder = total_length % num_segments
time_segments = []
current = 0

for i in range(num_segments):
    end = current + segment_length + (1 if i < remainder else 0)
    time_segments.append(time[current:end])
    current = end

这样就能轻松把时间向量拆分成10个等比例的子向量啦!

内容的提问来源于stack exchange,提问作者Mac.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:06:06