[已答复] 一个矩阵31*120,每24列的元素提取出来并组成新的矩阵

[复制链接]
han1410956636 发表于 2016-12-30 08:31:31
请教大神们,我现在有一个矩阵A是31*120的,我现在想按列提取,依次按每24列的元素提取出来,并存储,也就是A可以分成5个31*24的矩阵,并把这5个矩阵存储到一个新矩阵中,这个要怎么做呢?

5 条回复


jingzhaos 发表于 2016-12-30 08:57:06
分开,再存成一个矩阵,不是还是原来的老样子吗?

matlabzhanghu 发表于 2016-12-30 09:08:27
楼上说得对,按行拼接还是老样子,不过要是将每一块按列拼接一块就这样做
  1. clear,clc
  2. A = zeros(31,120);
  3. ind1 = 1:24:120-1;
  4. ind2 = 24:24:120;
  5. fh = @(x,y) A(:,x:y);
  6. R = arrayfun(fh,ind1,ind2, 'UniformOutput' ,0);
  7. Final_R = cell2mat(R(:))
复制代码

han1410956636 发表于 2016-12-30 09:08:31
jingzhaos 发表于 2016-12-30 08:57
分开,再存成一个矩阵,不是还是原来的老样子吗?

大神,我想拿依次24列的矩阵做运算,不知道循环该怎么写?比如我拿第一个1:24列的矩阵做方差,25:48的矩阵也做方差。。。这种?

jingzhaos 发表于 2016-12-30 14:01:27
这也有这23×24的所有元素求一个方差,还是每行/列求一个方差的问题,如果是23×24的所有元素的方差。可以:
a=rand(23,120);
aa=arrayfun(@(k) a(:,k:k+23),1:24:120,'un',0);
arrayfun(@(k) std(aa{k}(:)),1:5)  %这样是5个数,感觉你是这个要求

yg1987515 发表于 2021-11-24 15:03:35
请问这个问题解决了吗?能告诉我代码应该怎么写吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表