如何创建一个与未知数量的迭代循环?

11视图(30天)
我想帮助一个脚本。我有一个文件,三列,每个数字。我想通过一个循环满足一个条件。我想要的,基于一个特定的方程/关系:
掩码= z_input <鳍& z_input > = (fin-1);
为了满足这个方程只有元素从文件而不是得到一个“emplty”文件。
如果不是,那么应该转换的关系
掩码= z_input < (fin-1) & z_input > = (fin-2);
一个又不那么应该转换的关系
掩码= z_input < (fin-2) & z_input > = (fin-3);
一个又不那么应该转换的关系
掩码= z_input < (fin-3) & z_input > = (fin-4);
我有试过以下命令:
clc
清晰的
filename1 =“mydata.txt”;
(d1,特克斯)= importdata (filename1);
y_input = d1.data (:, 2);
x_input = d1.data (: 1);
z_input = d1.data (: 4);
掩码= z_input <鳍& z_input > = (fin-1);
选择= d1.data(面具,:);
y_B =选中(:,2);
x_B =选择(:1);
z_input_B =选中(:,4);
鳍= max (z_input);
如果isempty (z_input_B)
掩码= z_input < (fin-1) & z_input > = (fin-2);
选择= d1.data(面具,:);
结束
如果isempty (z_input_B)
掩码= z_input < (fin-2) & z_input > = (fin-3);
选择= d1.data(面具,:);
结束
如果isempty (z_input_B)
掩码= z_input < (fin-3) & z_input > = (fin-4);
选择= d1.data(面具,:);
结束
我需要一些(我),值从0到任何需要满足的关系/条件而不是得到一个“空”的文件。
我的意思是类似的
掩码= z_input < (fin-i) & z_input > =(鳍- (i + 1));
你能帮我吗?

接受的答案

1月
1月 2022年11月3日
编辑:1月 2022年11月3日
准备好= false;
k = 1;
~准备好了
掩码= z_input <鳍& z_input > =(鳍- k);
如果任何(面具)
准备好= true;
其他的
k = k + 1;
结束
结束
但请记住,的价值 分钟(z_input -翅片) 应该帮助找到直接k不使用一个循环。
另一种选择是使用 maxk (z_input, 2) 2最大的输出,也让你确定k。
4评论
1月
1月 2022年11月5日
编辑:1月 2022年11月5日
@Ivan密歇根州 :你忽略我的答案和我的评论。我已经提过,你修改 面具 ,但检查 isempty (z_input_B)
检查一个二进制掩模 isempty 也会失败,因为这个数量元素的个数不考虑它们的值。看看我发布的代码: 任何(x) 做一些不同于 isempty(面具)
发布一个例子文件不是有用的,因为我不能猜,我应该怎么处理这个文件。
我的代码,你有要求你解释多次,另一个代码不工作。即使我提到其他代码的问题,你没有反应。我重复一次,一个循环只是浪费时间,因为 maxk (z_input, 2) 揭示k的值直接:回复2最大的值,你必须减去他们。
我发布了一些代码,工作就我所见,并提到一个更高效的解决方案。我没有看到,我怎么可能会进一步帮助你。你为什么犹豫使用这些信息?

登录置评。

答案(1)

吉姆·里格斯
吉姆·里格斯 2022年11月3日
编辑:吉姆·里格斯 2022年11月3日
你的描述听起来像是一个while循环。
你指定一个逻辑条件将终止循环
我= 0;
条件= false;
条件= =假
我=我+ 1;
条件=%设置你的终止条件
结束
5个评论
伊凡密歇根州
伊凡密歇根州 2022年11月5日
谢谢你,但我不工作…
我有试过以下命令:
准备好= false;
k = 0;
~准备好了
掩码= z_input_B < (fin-k) & z_input > =(鳍- (k + 1));
如果isempty (z_input_B)
准备好= true;
其他的
k = k + 1;
结束
结束
但matlab坠毁(我的意思是,不停止执行)。我输入错了什么?我绝对相信我有一个错误在语法…
你能帮我吗? ?

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!