[已解决] for循环语句

[复制链接]
馨菲smile 发表于 2016-3-17 17:17:58
我有一数组1×62维,,想用从第29列到62列的数据依次减去前28列数据,所得数据再和原来的前28列数据进行对比,找出所得的相同数据及其所在的列。所写程序的for循环只得到一个数据,不知道该怎么改?还有找出相同的数据部分的程序不太会写,请帮忙指导下~谢谢。

X=xlsread( '\F:\32samples\newdata\dataset_30');
x=X(3,:);
l=length(x);
for i=29:62
    for j=1:28
       y(i)=x(j)-x(i);
    end
end

dataset.xlsx

9.86 KB, 下载次数: 1

最佳答案


jingzhaos 发表于 2016-3-17 17:58:57
本帖最后由 jingzhaos 于 2016-3-17 18:00 编辑

也就是说,第29列要减去前面1~28列,得到28组数据,以此类推?
  1. a=rand(1,62);
  2. b=a(1:28);
  3. c=a(29:62);
  4. for i=1:length(c)</p><p>for j=1:28
  5. d(i,j)=c(i)-b(j)
  6. end
  7. end
复制代码

7 条回复


jingzhaos 发表于 2016-3-17 17:33:55
还剩的几列怎么处理?

馨菲smile 发表于 2016-3-17 17:40:51
jingzhaos 发表于 2016-3-17 17:33
还剩的几列怎么处理?

sorry,我可能没说清楚,是这样的:从第29列开始,第29列依次减去前面28列,所得到的结果和签28列的值做对比,如果值相同就找出这个数据所在的列,然后 再进行第30列,依然按照相同的步骤,直到计算到底62列为止。  帮忙看看能不能给改下程序~

jingzhaos 发表于 2016-3-17 17:58:57
本帖最后由 jingzhaos 于 2016-3-17 18:00 编辑

也就是说,第29列要减去前面1~28列,得到28组数据,以此类推?
  1. a=rand(1,62);
  2. b=a(1:28);
  3. c=a(29:62);
  4. for i=1:length(c)</p><p>for j=1:28
  5. d(i,j)=c(i)-b(j)
  6. end
  7. end
复制代码
回复此楼

馨菲smile 发表于 2016-3-17 18:08:01
jingzhaos 发表于 2016-3-17 17:58
也就是说,第29列要减去前面1~28列,得到28组数据,以此类推?

好的,谢谢~

馨菲smile 发表于 2016-3-17 20:11:00
jingzhaos 发表于 2016-3-17 17:58
也就是说,第29列要减去前面1~28列,得到28组数据,以此类推?

还想问下,为何使用rand函数呢?

jingzhaos 发表于 2016-3-17 20:13:23
就是随便产生62个数,不想下载你的数再读出来了。

馨菲smile 发表于 2016-3-17 20:22:03
jingzhaos 发表于 2016-3-17 20:13
就是随便产生62个数,不想下载你的数再读出来了。

这样啊,明白了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表