如何用matlab中的for语句实现动态循环。例如:for i =1:K,k如何定义那?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用matlab中的for语句实现动态循环。例如:for i =1:K,k如何定义那?相关的知识,希望对你有一定的参考价值。
这个K是不确定的,而是在满足一定条件下自增的,每次曾加1;直至不符合条件终止循环,然后也知道了k值,知道循环了几次。就是想知道当这个K不确定时能不能用for循环。有其它方法吗?
1.这种方法不行。例如:
k=10;
for i=1:k
k=k-1;
end %循环次数仍为10
2.你说的意思不是太清楚。一般可以用双重循环实现复杂问题。
3.你可以试一下
k=100;
for i=1:99
k=k-i;
for j=1:k-1
%%%%%函数体
end
end 参考技术A clear all
close all
clc
k=100000000;
for i=1:k
x=rand(1);
if x<=0.00001
break;
i;
end
end
i 参考技术B 写不到啊。。。当一回锅炉的 参考技术C 没必要嘛,用while不就OK了。例如,
k = 111111;
i = 0;
while(i < k)
if (need change) k = k + 1;
end
end本回答被提问者采纳
Python / Django / Jinja2:如何用另一个变量的值扩展变量名(例如在 for 循环中)?
【中文标题】Python / Django / Jinja2:如何用另一个变量的值扩展变量名(例如在 for 循环中)?【英文标题】:Python / Django / Jinja2: How to extend a variable name with the value of another variable (e.g. in a for-loop)? 【发布时间】:2020-02-07 05:34:50 【问题描述】:在我的django
db 模型中,我有例如5x ImageField
,我想在前端用作轮播:
slider_image_1 = models.ImageField(upload_to='images/', blank=True)
slider_image_2 = models.ImageField(upload_to='images/', blank=True)
slider_image_3 = models.ImageField(upload_to='images/', blank=True)
slider_image_4 = models.ImageField(upload_to='images/', blank=True)
slider_image_5 = models.ImageField(upload_to='images/', blank=True)
根据图像是否已上传,我想显示图像,我正在寻找类似于这样的方法:
% for FOO in range(5) %
% if object.slider_image_|extend_name_with:FOO %
<img src=" object.slider_image_|extend_name_with:FOO.url ">
% endif %
% endfor %
有类似的可能吗?解决这个问题还有什么其他好的方法?
【问题讨论】:
【参考方案1】:对于模板中的复杂逻辑,推荐的方法是在模型方法中编写逻辑,而不是在模板本身中。
在你的情况下,我认为这就是你想要的:
class SomeModel(models.Model):
slider_image_1 = models.ImageField(upload_to='images/', blank=True)
slider_image_2 = models.ImageField(upload_to='images/', blank=True)
slider_image_3 = models.ImageField(upload_to='images/', blank=True)
slider_image_4 = models.ImageField(upload_to='images/', blank=True)
slider_image_5 = models.ImageField(upload_to='images/', blank=True)
@property
def slider_images(self):
fields = [field.name for field in self._meta.get_fields()]
results = []
for field in fields:
if 'slider_image' in field:
data = getattr(self, field)
if data:
results.append(data.url)
return results
@property
def slider_images(self): # simplified version
results = [getattr(self, field.name) for field in self._meta.get_fields()
if 'slider_image' in field]
return [result.url for result in results if result]
现在您可以在模板中轻松访问此列表:
% for url in object.slider_images %
<img src=" url ">
% endfor %
这有点超出了这个问题的范围,但是您的 slider_image
字段看起来应该是一个 ManyToManyField
。在此处使用M2M
将大量简化您正在做的工作量,并完全消除对我的解决方案的需求。我无法真正为您提供使用此功能的解决方案,因为您可能需要在整个代码中更改几条逻辑,然后才能使用它。
【讨论】:
以上是关于如何用matlab中的for语句实现动态循环。例如:for i =1:K,k如何定义那?的主要内容,如果未能解决你的问题,请参考以下文章