d*******2 发帖数: 340 | 1 256个参数,每个参数有两个可能值。如果使用循环,应该是
for parameter1 =1:2
for parameter2 =1:2
for parameter3 =1:2
for parameter4 =1:2
for parameter5 =1:2
for parameter6 =1:2
。。。。。。
for ite=1:2
f(parameter256(ite) .......parameter6(ite),parameter5(ite),parameter4(ite)
,parameter3(ite),parameter2(ite),parameter1(ite))=....
...
end
end
end
end
end
end
这样一共需要些256个for循环。请问有什么更简洁的办法吗?先谢了! | j**u 发帖数: 6059 | 2 这个决定于你的f(...),如果很复杂不能矩阵运算,本来就是256个循环,你也不能减
少呀,可能试试parallel computing toolbox的parfor。你不妨把f(...)贴出来看看能
不能简化运算。
ite)
【在 d*******2 的大作中提到】 : 256个参数,每个参数有两个可能值。如果使用循环,应该是 : for parameter1 =1:2 : for parameter2 =1:2 : for parameter3 =1:2 : for parameter4 =1:2 : for parameter5 =1:2 : for parameter6 =1:2 : 。。。。。。 : for ite=1:2 : f(parameter256(ite) .......parameter6(ite),parameter5(ite),parameter4(ite)
| d*******2 发帖数: 340 | 3 非常感谢!f()不能矩阵运算,需要用子程序才能实现。
请问如果用parfor的话,在写法上可以不用写256+行语句吗?
【在 j**u 的大作中提到】 : 这个决定于你的f(...),如果很复杂不能矩阵运算,本来就是256个循环,你也不能减 : 少呀,可能试试parallel computing toolbox的parfor。你不妨把f(...)贴出来看看能 : 不能简化运算。 : : ite)
| D****y 发帖数: 2207 | 4 编码
用一个bit代表一个parameteri,0代表2,1代表1
256个parameter可以用4个long long覆盖,256层循环可以简化成4层循环
for (v_parameter_1=0:0xffffffffffffffff)
for (v_parameter_2=0:0xffffffffffffffff)
for (v_parameter_3=0:0xffffffffffffffff)
for (v_parameter_4=0:0xffffffffffffffff)
f'(v_parameter_1, v_parameter_2, v_parameter_3, v_parameter_4)
ite)
【在 d*******2 的大作中提到】 : 256个参数,每个参数有两个可能值。如果使用循环,应该是 : for parameter1 =1:2 : for parameter2 =1:2 : for parameter3 =1:2 : for parameter4 =1:2 : for parameter5 =1:2 : for parameter6 =1:2 : 。。。。。。 : for ite=1:2 : f(parameter256(ite) .......parameter6(ite),parameter5(ite),parameter4(ite)
|
|