如何数组分割成子数组?

185(30天)
Mekan Nuvryyev
Mekan Nuvryyev 2021年10月12日
评论道: 马特·J 2021年10月18日
你好,我是相当新的MATLAB,所以请容忍我的简单的问题。
假设我有91612项的数组 91612 x1双 。我想把它和创建多个重叠数组(例如:Array_1 ( 1000 x1双); Array_2 ( 1000年x1双 )…Array_N ( 612年x1双 )]。注意,去年只有612条目数组,与原始数组中有91612个条目。
问题:
  1. 我怎样才能做到这一点通过循环方法?
  2. 我怎么能这样做没有循环方法?
  3. 我有一种感觉,创造个人变量并不是最有效的方法,所以我推测答案将会创建一个表(T)与数组每个元素。因此这个问题,如何创建一个数组(M),每个元素代表了每个单元的表T意味着什么?例:M (n) = (T (n)),其中n即各自总指数创建表T细胞?会是这样的:
长度为n = 1: (T)
M (n) =意味着(T (n));
结束?
事先道歉我不能上传原始文件,因此请,作为一个例子,只是创建随机non-even数组,例如124(10)的窗口,3214(100)的窗口或像这样的东西。谢谢你,好心的,对你的援助!
最好的问候,
Mekan

接受的答案

Stephen23
Stephen23 2021年10月18日
编辑:Stephen23 2021年10月18日
“我有一种感觉,创造个人变量并不是最有效的方法……”
创建大量的个体变量将是缓慢的,复杂的,难以调试,效率很低。
“…所以我推测答案将会创建一个表(T)与数组每个元素”
使用单元阵列比较简单,例如使用 mat2cell 和一些基本的数学模(不需要循环):
一个=兰德(124 1)%随机数据
一个= 124×1
0.9858 0.9376 0.4004 0.3453 0.2916 0.7234 0.5530 0.9021 0.7499 0.2642
N = 10;%窗口大小
X =大小(1)1;
Y = [N *(1,修复(X / N)), 1 +快速眼动(X, N)]
Y = 1×13
10 10 10 10 10 10 10 10 10 10 10 10 4
C = mat2cell (A, Y, 1)
C =13×1单元阵列
{10×1双}{10×1双}{10×1双}{10×1双}{10×1双}{10×1双}{10×1双}{10×1双}{10×1双}{10×1双}{10×1双}{10×1双}{4×1双}
第三部分可以使用CELLFUN走近你的问题:
M = cellfun (@mean C)
M = 13×1
0.6153 0.4236 0.4151 0.7397 0.4655 0.4444 0.5167 0.4445 0.5626 0.4495
或一个简单的循环:
N =元素个数(C);
M =南(N, 1);
k = 1: N
M (k) =意味着(C {k});
结束
M = 13×1
0.6153 0.4236 0.4151 0.7397 0.4655 0.4444 0.5167 0.4445 0.5626 0.4495
1评论
Mekan Nuvryyev
Mekan Nuvryyev 2021年10月18日
你好,斯蒂芬,
谢谢你,善良的,对你的回答和深入的解释!我相信你已经回答了我所有的问题对我满意。谢谢你!
最好的问候,
Mekan

登录置评。

答案(1)

马特·J
马特·J 2021年10月12日
编辑:马特·J 2021年10月12日
你会这样做的方式是将矢量单元阵列。没有办法没有循环。您可以使用mat2tiles从文件交换缩写任务
例子:
一个=兰德(91612 1);
= mat2tiles (A[1] 1000年)
了=92×1单元阵列
{1000×1双}{1000×1双}{1000×1双}{1000×1双}{1000×1双}{1000×1双}{1000×1双}{1000×1双}{1000×1双}{1000×1双}{1000×1双}{1000×1双}{1000×1双}{1000×1双}{1000×1双}{1000×1双}
5个评论
马特·J
马特·J 2021年10月18日
所有数组使用循环处理。
问题声称为了避免Mcoded for循环,mat2cell已经……

登录置评。

下载188bet金宝搏


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的