全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
14259 9
2017-01-08
我有一个56*2464矩阵M,我想每从第一列开始每56个矩阵分割成一个小矩阵,这样一共生成44个56*56的小矩阵并自动命名。我自己输入的命令是B=cell(1,44);for i=1:44
    B{i}=M(:,(56*(i-1)+1):56*i);
end

但是这样生成的是一个cell就是一个B然后打开后44个矩阵都在B里面,我要的是那种直接生成,B1,B2......的结果,这个具体怎么弄呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-1-8 17:54:43
%楼主要的是直接生成,B1,B2矩阵......的结果?

M=ones(56,2464);
for i=1:1:44
    M(:,(56*(i-1)+1):56*i)=i;
end
%
for i=1:1:44
    Bname=strcat('B',num2str(i));
    eval([Bname,'=M(:,(56*(i-1)+1):56*i);']);
end
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-1-8 21:30:24
对的,大神我再问个问题怎么能将2464*2464矩阵,对角线上的44个56*56小矩阵全部取出来再生成成为一个2464*56的矩阵?不胜感激
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-1-8 21:32:56
ljling 发表于 2017-1-8 17:54
%楼主要的是直接生成,B1,B2矩阵......的结果?

M=ones(56,2464);
对的,大神我再问个问题怎么能将2464*2464矩阵,对角线上的44个56*56小矩阵全部取出来再生成成为一个2464*56的矩阵?不胜感激
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-1-9 09:17:33
不知道是不是你想要的
B=[];
for i=1:56:2409
    B=[B;M(i:i+55,i:i+55)];   
end
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-1-9 16:15:08
lixuewei3 发表于 2017-1-9 09:17
不知道是不是你想要的
B=[];
for i=1:56:2409
是的呢,非常感谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群