24小时热门版块排行榜    

查看: 335  |  回复: 4

btliu

金虫 (小有名气)

[求助] Matlab急求帮助!

如下面数据所示,如何通过步数和循环数,计算出对应第一列任意位置处的点数(与第一列数对应)。我下面写了个东西,想求和,但始终不对!谢谢!

x = data(:,1);% 点数
z=data(:,2);% 步数
u=data(:,3);% 循环数

for i=1:max(u)  % cycle index
  for n = 1:max(z) % step index
     for m = 1:length(find(data(:,2)== n))
          k =sum(m)
     end
   end
end


点数        步数        循环数
1        1        1
2        1        1
3        2        1
4        2        1
5        2        1
6        2        1
7        2        1
8        2        1
9        2        1
10        2        1
11        2        1
12        2        1
13        2        1
14        2        1
15        2        1
16        2        1
17        2        1
18        2        1
19        3        1
20        3        1
21        3        1
22        3        1
23        3        1
24        3        1
25        3        1
26        3        1
27        3        1
28        3        1
29        3        1
30        3        1
31        3        1
32        3        1
33        3        1
34        3        1
35        4        1
36        4        1
37        4        1
38        4        1
39        4        1
40        4        1
41        4        1
42        4        1
43        4        1
44        4        1
45        4        1
46        4        1
47        4        1
48        4        1
49        4        1
50        4        1
51        2        2
52        2        2
53        2        2
54        2        2
55        2        2
56        2        2
57        2        2
58        2        2
59        2        2
60        2        2
61        2        2
62        2        2
63        2        2
64        2        2
65        2        2
66        2        2
67        3        2
68        3        2
69        3        2
70        3        2
71        3        2
72        3        2
73        3        2
74        3        2
75        3        2
76        3        2
77        3        2
78        3        2
79        3        2
80        3        2
81        3        2
82        3        2
83        4        2
84        4        2
85        4        2
86        4        2
87        4        2
88        4        2
89        4        2
90        4        2
91        4        2
92        4        2
93        4        2
94        4        2
95        4        2
96        4        2
97        4        2
98        4        2
99        2        3
100        2        3
101        2        3
102        2        3
103        2        3
104        2        3
105        2        3
106        2        3
107        2        3
108        2        3
109        2        3
110        2        3
111        2        3
112        2        3
113        2        3
114        2        3
115        3        3
116        3        3
117        3        3
118        3        3
119        3        3
120        3        3
121        3        3
122        3        3
123        3        3
124        3        3
125        3        3
126        3        3
127        3        3
128        3        3
129        3        3
130        3        3
131        4        3
132        4        3
133        4        3
134        4        3
135        4        3
136        4        3
137        4        3
138        4        3
139        4        3
140        4        3
141        4        3
142        4        3
143        4        3
144        4        3
145        4        3
146        4        3
回复此楼

» 猜你喜欢

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

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

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢提供建议 2012-12-08 01:09:43
你应该把问题描述清楚,是不是要对应每个循环次数下,不同步数对应的点数求和?
CODE:
data = [1        1        1
2        1        1
3        2        1
4        2        1
5        2        1
6        2        1
7        2        1
8        2        1
9        2        1
10        2        1
11        2        1
12        2        1
13        2        1
14        2        1
15        2        1
16        2        1
17        2        1
18        2        1
19        3        1
20        3        1
21        3        1
22        3        1
23        3        1
24        3        1
25        3        1
26        3        1
27        3        1
28        3        1
29        3        1
30        3        1
31        3        1
32        3        1
33        3        1
34        3        1
35        4        1
36        4        1
37        4        1
38        4        1
39        4        1
40        4        1
41        4        1
42        4        1
43        4        1
44        4        1
45        4        1
46        4        1
47        4        1
48        4        1
49        4        1
50        4        1
51        2        2
52        2        2
53        2        2
54        2        2
55        2        2
56        2        2
57        2        2
58        2        2
59        2        2
60        2        2
61        2        2
62        2        2
63        2        2
64        2        2
65        2        2
66        2        2
67        3        2
68        3        2
69        3        2
70        3        2
71        3        2
72        3        2
73        3        2
74        3        2
75        3        2
76        3        2
77        3        2
78        3        2
79        3        2
80        3        2
81        3        2
82        3        2
83        4        2
84        4        2
85        4        2
86        4        2
87        4        2
88        4        2
89        4        2
90        4        2
91        4        2
92        4        2
93        4        2
94        4        2
95        4        2
96        4        2
97        4        2
98        4        2
99        2        3
100        2        3
101        2        3
102        2        3
103        2        3
104        2        3
105        2        3
106        2        3
107        2        3
108        2        3
109        2        3
110        2        3
111        2        3
112        2        3
113        2        3
114        2        3
115        3        3
116        3        3
117        3        3
118        3        3
119        3        3
120        3        3
121        3        3
122        3        3
123        3        3
124        3        3
125        3        3
126        3        3
127        3        3
128        3        3
129        3        3
130        3        3
131        4        3
132        4        3
133        4        3
134        4        3
135        4        3
136        4        3
137        4        3
138        4        3
139        4        3
140        4        3
141        4        3
142        4        3
143        4        3
144        4        3
145        4        3
146        4        3];
for u=min(data(:,3)):max(data(:,3))
    curdata = data(data(:,3)==u,1:2);
    for z=min(curdata(:,2)):max(curdata(:,2))
        x = sum(curdata(curdata(:,2)==z,1));
        fprintf(1,'cycle index = %d, step index = %d, point number sum = %d\n',u,z,x);
    end
end

结果:
CODE:
cycle index = 1, step index = 1, point number sum = 3
cycle index = 1, step index = 2, point number sum = 168
cycle index = 1, step index = 3, point number sum = 424
cycle index = 1, step index = 4, point number sum = 680
cycle index = 2, step index = 2, point number sum = 936
cycle index = 2, step index = 3, point number sum = 1192
cycle index = 2, step index = 4, point number sum = 1448
cycle index = 3, step index = 2, point number sum = 1704
cycle index = 3, step index = 3, point number sum = 1960
cycle index = 3, step index = 4, point number sum = 2216
>>  

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2012-12-07 17:42:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

btliu

金虫 (小有名气)

引用回帖:
2楼: Originally posted by libralibra at 2012-12-07 17:42:48
你应该把问题描述清楚,是不是要对应每个循环次数下,不同步数对应的点数求和?
data = ;
for u=min(data(:,3)):max(data(:,3))
    curdata = data(data(:,3)==u,1:2);
    for z=min(curdata(:,2)):max(curdata ...

谢谢您的回复!我的问题是想通过第三列的循环数和第二列步数,直接把第一列的点数表示出来。如循环数为1、步数为4时,第2个4(相当于‘第4步的第2小步’)对应点数为36;如循环数为1、步数为4时,第3个4(相当于‘第4步的第3小步’)对应点数为37...。请再次给予指导,谢谢!
3楼2012-12-07 20:54:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
jjdg: 金币+1, 感谢提供建议 2012-12-08 01:09:50
btliu: 金币+20, ★★★很有帮助, 谢谢你提供的思路。点数的位置,实际上为实验数据。我希望用循环条件语句,处理该实验数据。 2012-12-09 00:07:27
引用回帖:
3楼: Originally posted by btliu at 2012-12-07 20:54:19
谢谢您的回复!我的问题是想通过第三列的循环数和第二列步数,直接把第一列的点数表示出来。如循环数为1、步数为4时,第2个4(相当于‘第4步的第2小步’)对应点数为36;如循环数为1、步数为4时,第3个4(相当于‘ ...

那你写代码干啥?
那个矩阵就是数据,你需要第次循环,第几步,第几个数自己找就行了呀
循环数为1,步数为4,第二个4对应的点数不就是
CODE:
curdata = data(data(:,3)==1,1:2);
point = curdata(curdata(:2)==4,1);
point(2)

» 本帖已获得的红花(最新10朵)

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2012-12-07 22:55:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

btliu

金虫 (小有名气)

送鲜花一朵
引用回帖:
4楼: Originally posted by libralibra at 2012-12-07 22:55:38
那你写代码干啥?
那个矩阵就是数据,你需要第次循环,第几步,第几个数自己找就行了呀
循环数为1,步数为4,第二个4对应的点数不就是
curdata = data(data(:,3)==1,1:2);
point = curdata(curdata(:2)==4,1);
poi ...

请问libralibra,你的方法很容易确定点的具体位置。但我现在不知如何通过增加循环数和步数的条件语句,有选择地获取数据点。请指导,谢谢!
5楼2012-12-09 00:39:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 btliu 的主题更新
信息提示
请填处理意见