| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 916 人关注过本帖
标题:请教数组问题,谢谢!
只看楼主 加入收藏
Scofield
Rank: 1
等 级:新手上路
威 望:1
帖 子:56
专家分:0
注 册:2006-5-30
收藏
 问题点数:0 回复次数:4 
请教数组问题,谢谢!
%我想通过分段提取mydata中的数组,每100行数据提取一次,运算后放到数组ww中,共提取40次
%A_array 提取前2列,Y_array提取第三列;
%但是程序 ww(n)=acos(a1/2); //有问题
%总有问题,请教大侠~谢谢!!!

%程序是这样的:

mydata=load('Data1.txt');
rand('state',0);
ww=rand(1,40);

for n=0:39
A_array=mydata((1+100*n)100+100*n),(1:2));
Y_array=mydata((1+100*n)100+100*n),3);
a_array=inv((A_array)'*(A_array))*(A_array)'*Y_array
a1=a_array(1,1) %a1=2
a1=vpa(a1,10);
ww(n)=acos(a1/2); //有问题
end ;
2006-11-16 21:06
尘埃122
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:127
专家分:0
注 册:2006-8-31
收藏
得分:0 
呵呵,matlab中数组下标从1开始,如果下标为0会报错

你将循环设为 1:40 ,改变循环中语句相应的下标,你再试试,应该可以的

2006-11-17 15:06
Scofield
Rank: 1
等 级:新手上路
威 望:1
帖 子:56
专家分:0
注 册:2006-5-30
收藏
得分:0 

我把程序修改了:
%提取数据
mydata=load('Data.txt');
rand('state',0);
ww=rand(1,40);

for n=1:40
A_array=mydata((1+100*(n-1):100+100*(n-1)),(1:2));% 1-40
Y_array=mydata((1+100*(n-1):100+100*(n-1)),3);
a_array=inv((A_array)'*(A_array))*(A_array)'*Y_array
a1=a_array(1,1) %a1=2
a1=vpa(a1,10);
ww(n)=acos(a1/2); %??? Conversion to double from sym is not possible.
%On line 12 ==> ww(n)=acos(a1/2);
end ;

还是有问题啊~~郁闷~


2006-11-17 20:37
hitzhang
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:21
帖 子:369
专家分:52
注 册:2006-9-24
收藏
得分:0 
a1的属性是sym不是数字型
a1=double(a1)即可

2006-11-18 11:31
Scofield
Rank: 1
等 级:新手上路
威 望:1
帖 子:56
专家分:0
注 册:2006-5-30
收藏
得分:0 
谢谢!

2006-11-19 14:15
快速回复:请教数组问题,谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050094 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved