CyRhmU.jpeg
查看: 1180  |  回复: 3

wenzimu

新虫 (初入文坛)

[求助] matlab中如何通过for语句得到已有矩阵的部分数据

现有一个156*4的矩阵,现在想通过for循环语句得到该矩阵中每12行中去掉第一行的数据从而组成新矩阵。比如原矩阵是156行4列,那么想得到的新矩阵为1:156中的2:12,14:24,26:36......,列数保持不变,跪求高手帮忙!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
wenzimu: 金币+3, 有帮助 2012-08-15 18:54:08
xzhdty: 金币+1, 谢谢骠骑将军 2012-08-15 20:23:36
CODE:
a = randi(100,[156,4])
[m,n] = size(a);
ind = 1;
for st = 2:12:m
    eval(strcat('m',num2str(ind),'=a(st:st+10,:)'));
    ind = ind+1;
end

最后的m1-m13这13个矩阵就是你需要的
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2012-08-15 17:11:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wenzimu

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by libralibra at 2012-08-15 17:11:23
a = randi(100,)
= size(a);
ind = 1;
for st = 2:12:m
    eval(strcat('m',num2str(ind),'=a(st:st+10,'));
    ind = ind+1;
end
最后的m1-m13这13个矩阵就是你需要的

多谢你的回答。可能是我表达不够清楚的缘故,其实我想得到的并不是13个矩阵,而是由2:12,14:24,26:36......这些新行一起组成的一个新矩阵。不过还是十分感谢!
3楼2012-08-15 18:55:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

引用回帖:
3楼: Originally posted by wenzimu at 2012-08-15 18:55:42
多谢你的回答。可能是我表达不够清楚的缘故,其实我想得到的并不是13个矩阵,而是由2:12,14:24,26:36......这些新行一起组成的一个新矩阵。不过还是十分感谢!...

那就更简单了,只需要弄个新矩阵,循环中不断添加数据进去
CODE:
a = randi(100,[156,4]);
[m,n] = size(a);
newa = [];
for st = 2:12:m
    newa = [newa;a(st:st+10,:)];
end

newa就是你需要的矩阵
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2012-08-15 23:05:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wenzimu 的主题更新
信息提示
请填处理意见