如何用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如何定义那?的主要内容,如果未能解决你的问题,请参考以下文章

如何用 C# 中的函数语句替换 for 循环?

matlab用for循环求矩阵乘法

如何用SQL循环查询语句

MATLAB中如何用for 循环将结果代入矩阵中?

如何用Pythoncontinue语句及单个for循环输出10~20之间的所有奇数及21~30间的?

Java如何用for循环实现以下图形 * *** ***** ******* ***** *** *