楼主: ffcxy2005
8928 7

[问答] matlab如何实现矩阵多行数据的循环调用 [推广有奖]

  • 7关注
  • 7粉丝

博士生

36%

还不是VIP/贵宾

-

威望
0
论坛币
2810 个
通用积分
3.2700
学术水平
8 点
热心指数
12 点
信用等级
7 点
经验
4436 点
帖子
132
精华
0
在线时间
349 小时
注册时间
2011-4-13
最后登录
2024-3-18

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
比如有一个143*4矩阵,每次想通过循环语句调用X(143,4)中的多行数据,为何不能实现(代码附在下方),请大家帮忙看下,谢谢!
>>n=0:12;
>> X=rand(143,4);
>> C=ones(11,1);
>> for n=0:12
       i=11*n
       j=1:4
   Xj=[X((1+11*n):(11+11*n)),j;C];
   end
i =
     0

j =
     1     2     3     4

??? Error using ==> vertcat
CAT arguments dimensions are not consistent.
二维码

扫码加我 拉你入群

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

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

关键词:MATLAB atlab matla 如何实现 Lab 矩阵 matlab 如何

沙发
ffcxy2005 发表于 2012-8-16 10:22:00 |只看作者 |坛友微信交流群
for里面的语句改成以下形式,好像还是不行
>> for n=0:12
i=11*n
j=1:4
Xj=[X((1+i):(11+i)),j;C];
end

使用道具

藤椅
遥远的生命 发表于 2012-8-16 22:17:41 |只看作者 |坛友微信交流群
提示: 作者被禁止或删除 内容自动屏蔽

使用道具

板凳
ffcxy2005 发表于 2012-8-17 14:32:36 |只看作者 |坛友微信交流群
遥远的生命 发表于 2012-8-16 22:17
额,昨天问题不是解决了吗?
Xj=[X((1+i):(11+i)),j;C];
这个写法真要命
这是我新的代码,运行起来可以,但跟我想要的结果有点差距
>> Y=PRTNnew;     %143*1的矩阵
>>  X=[LPRTN,GRON];    %143*2矩阵
>>  C=ones(11,1);       %新定义11*1矩阵
>> for n=0:12
       i=11*n;
   for j=1:13
   Xj=X(1+i:11+i,:);    %每次循环的结果赋给Xj
   Xj=[Xj,C];       %得到11*3的矩阵
  Yj=Y(1+i:11+i,:);   %Yj为11*1的矩阵
[b(:,:,n+1),bint(:,:,n+1),r(:,:,n+1),stats(:,:,n+1)]=regress(Yj,Xj);   %进行回归并得到相应统计量和参数

根据上面的代码,得到的是13组r为11*1的矩阵和stats为11*2的矩阵。但现在有个问题就是想通过struct语句如D{j}.origin=Xj是来分开保存每次j取不同值的Xj的数据,在语句最后加上这一句的时候程序运行系统提示只能出一个结果,“??? This index expression yields only one result. ” 不知为何。另外,就是想把Yj值,b,bint,r,rint,stats这些都保存成独立的数组,形如D{1}.actual=Y1;D{2}.actual=Y2;...;D{13}.actual=Y13这样的,不知道应如何操作?可以帮忙看一下吗,谢谢!

使用道具

报纸
遥远的生命 发表于 2012-8-17 19:01:25 |只看作者 |坛友微信交流群
提示: 作者被禁止或删除 内容自动屏蔽

使用道具

地板
3生石 在职认证  发表于 2012-8-23 12:01:18 |只看作者 |坛友微信交流群
看到这个贴,突然赶脚飘飘然,还要再努力

使用道具

7
wangyl90 发表于 2012-8-24 09:42:18 |只看作者 |坛友微信交流群
你这个X只指定了行没有指定列吧?加,:?

使用道具

8
matlab-007 发表于 2016-8-31 20:42:25 |只看作者 |坛友微信交流群
n=0:12;
X=rand(143,4);
C=ones(11,1);
for n=0:12
       i=11*n
       j=1:4
      Xj=X(1+i:11+i,j);
      Xj=[Xj C]        
end

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-3 03:12