Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在Matlab中迭代给定范围内数组的每个元素?_Arrays_Matlab_Iteration - Fatal编程技术网

Arrays 如何在Matlab中迭代给定范围内数组的每个元素?

Arrays 如何在Matlab中迭代给定范围内数组的每个元素?,arrays,matlab,iteration,Arrays,Matlab,Iteration,我有一个基于9x1数组输出整数的函数。我想检查各种数组值的函数输出,因此理想情况下,我希望迭代范围(0,3)内数组的每个元素。有没有比9嵌套for循环更简单的方法呢?请注意,您有3^9排列。如果有一个函数可以将数字1到3^9的属性赋予每个组合,则可以执行单个循环 for i=1:3^9 current_array = arrangement_no(i); test_function(current_array); end 要定义此函数,基本上将每个数字转换为基数3,取数字并加一

我有一个基于9x1数组输出整数的函数。我想检查各种数组值的函数输出,因此理想情况下,我希望迭代范围(0,3)内数组的每个元素。有没有比9嵌套for循环更简单的方法呢?

请注意,您有3^9排列。如果有一个函数可以将数字1到3^9的属性赋予每个组合,则可以执行单个循环

for i=1:3^9
    current_array = arrangement_no(i);
    test_function(current_array);
end
要定义此函数,基本上将每个数字转换为基数3,取数字并加一。我将给出一个大小为3的数组的示例,其中条目的范围为0:2(如果可以,请先尝试此方法)


请提供一个输入/输出示例,以及您尝试解决问题的方法。看,然后你的问题相应的排列非常大。这是一个复杂的问题。9个循环是蛮力的方式,但它可能需要太长的时间,你需要跳转到多变量优化,如GAs和其他。你的问题不是很清楚。你能编辑它并提供你的代码片段吗?你所说的问题似乎并不重大,但如果这个问题仍然没有答案,那么看看它可能会很有趣。:)
function current_array = arrangement_no(i)
current_array = zeros(1,3)
for j = 1:3
   current_array(end+1-j) = mod(i,3);
   i= floor(i/3);
end
end