![]() |
标记每次循环的循环值
我想用一个值标记从循环中出来的每个值。
假设我每次迭代都有可变数量的值。我希望这些值用它们出现的迭代来标记。 像1-1、2-1、3-1, 1-2、2-2、3-2、4-2, 等等 其中第一个数字是循环中的值,第二个数字是计数它来自哪个迭代。我觉得有一种方法我找不到。 好的,所以这是一些代码。 for c=1:1:npoints; for i=1:1:NN; if ((c-1)*spacepoints)=PL(i); local(c)=((c)*spacepoints)-PL(i); end if ((c-1)*spacepoints)>=PL(NN); local(c)=((c)*spacepoints)-PL(NN); element(i)=NN; end end 我想用来自i:NN的迭代标记每个局部值。 PL是一个向量,输出是每次迭代的一组向量。 [B]回答:[/B] 目前,在内部1:NN循环中,您的local(c)变量正在更新或覆盖。您永远不会应用local的先前值,因此它不是某种迭代优化算法(?)... 也许一个简单的解决方案是将local变量的大小/类型从[I]矢量[/I]更改为[I]矩阵[/I] 。假设local的大小为[npoints 1] 。相反,您将其设置为大小[npoints NN] 。现在它是一个2d数组( npoints行和NN列的矩阵)。使用第二维存储来自内部循环的每个(假定列)向量: local = zeros([npoints NN]); %# ... code in bewteen ... for c=1:1:npoints; for i=1:1:NN; if ((c-1)*spacepoints)=PL(i); local(c, i)=((c)*spacepoints)-PL(i); end if ((c-1)*spacepoints)>=PL(NN); local(c, i)=((c)*spacepoints)-PL(NN); element(i)=NN; end end end 然后, local矩阵的第[I]c[/I]行将对应于内部循环的NN值。请注意,我假设您的向量为列向量-如果不是,则只需更改大小顺序即可。 [url=https://stackoverflow.com/questions/5025296]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 05:03。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.