Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 从1到n矩阵检索第一行,从n+检索第二行;第1个矩阵到n+;第n矩阵_Matlab - Fatal编程技术网

Matlab 从1到n矩阵检索第一行,从n+检索第二行;第1个矩阵到n+;第n矩阵

Matlab 从1到n矩阵检索第一行,从n+检索第二行;第1个矩阵到n+;第n矩阵,matlab,Matlab,我有1028(7*21)个矩阵,我将这些1028个不同的矩阵保存在一个数组中。假设数组是a,那么 [1]包含第一个矩阵 [2]包含第二个矩阵 [3]包含第三个矩阵 [4]包含第四个矩阵,依此类推 ... ... [1028]包含第1028个矩阵 现在,我想检索1到147个矩阵第一行,148到294个矩阵第二行,295到441个矩阵第三行,等等,直到1028个。经过一些准备工作后,您可以使用重塑 % generate example data X = {repmat({rand(7,21)},1

我有1028(7*21)个矩阵,我将这些1028个不同的矩阵保存在一个数组中。假设数组是a,那么 [1]包含第一个矩阵 [2]包含第二个矩阵 [3]包含第三个矩阵 [4]包含第四个矩阵,依此类推 ... ... [1028]包含第1028个矩阵


现在,我想检索1到147个矩阵第一行,148到294个矩阵第二行,295到441个矩阵第三行,等等,直到1028个。

经过一些准备工作后,您可以使用
重塑

% generate example data
X = {repmat({rand(7,21)},1028,1)}
这是一个
1028x1单元
-但您需要1029矩阵使其可被147整除:

X = vertcat(X{1},{[]})
现在,您可以根据需要对其进行重塑:

Y = reshape(X,147,[])
这是一个
147x7单元格
,包含1028个
7x21
矩阵和一个空占位符


对于任意数量的
X
元素和所选的除数,更通用的解决方案是:

divisor = 147;

N = numel( X{1} );                                     %// for example 1023
missingCells = ceil(N/divisor)*divisor - N;            %// would be 6 then
X = vertcat( X{1}, repmat({[]}, missingCells,1) );     %// fill up with + 6 cells
Y = reshape( X, divisor,[] );                          %// 147x7 cell

您确定您有1028个矩阵,而不是7*147=1029个矩阵吗?如果答案对您有帮助,请将其标记为“已接受”(左侧的复选框),以便系统知道问题已解决。