首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环适配

循环适配
EN

Stack Overflow用户
提问于 2013-11-19 15:24:08
回答 1查看 49关注 0票数 0

我有两个列向量'a‘和'b’(例如,如下所示)

代码语言:javascript
复制
 a_o = [4 5 6]'
 b_o = [1 8 4]'

现在,我想创建一个for循环,其中不能将任何迭代定义为

代码语言:javascript
复制
   for
      i=1:1:20   
   end 

我在循环中要做的是,对于a_o和相应的b_o的每个值,如下表所示。它应该首先将'a_o‘和'b_o’的第一个值(在本例中为a-o1= 4和b_o1=1)作为循环,并对i的20个迭代进行计算,如下表所示。

代码语言:javascript
复制
    a            b             c                     No. of iterations
   a1=a_o1      b1=b_o1       c1=a_o1xb_o1           1
   a2=a1+c1     b2=b1-c1      c2=a2xb2               2
   a3=a2+c2     b3=b2-c2      c3=a2xb2               3
   .            .             .                      .
   .            .             .                      .
   .            .             .                      .
   a20=a19+c19  b20=b19-c19   c20=a19xb19            20

在此之后,它应该获得'a_o‘和'b_o’的第二个值(在本例中为a-o1= 5和b_o1=8),并重复上面表中提到的过程。同样,“a_o”和“b_o”的其余部分也是如此。此外,当循环完成时,需要一个图形,它将是y轴= 'a‘和x轴=’n‘之间的x-y图。在这种情况下,我期望有三条曲线,因为在a_o中有三个值,每条曲线都有20个数据点,而'no. . of iteration‘是20。

我需要建议,因为我的实际要求并不像上面所说的那么简单。它包含非常大的数据集。另外,还可以采用不同的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-19 16:06:55

事实上,这是非常简单的,但是我拒绝制造这么多的变量,相反,我们只是做了一些更大的变量:

代码语言:javascript
复制
n = 20;
a_o = [4 5 6]';
b_o = [1 8 4]';
c_o = a_o.*b_o; % You may want to do the regular multiplication

%Initialize your matrices
a = repmat(a_o,1,n);
b = repmat(b_o,1,n);
c = repmat(c_o,1,n);

for t = 2:n
  a(:,t) =  a(:,t-1)+c(:,t-1);
  b(:,t) =  b(:,t-1)-c(:,t-1);
  c(:,t) =  a(:,t).*b(:,t);
end

这应该可以做你想做的事,而且不应该太难调整。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20075428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档