Loops 网格计算并导出到CSV
我有两组Loops 网格计算并导出到CSV,loops,csv,maxima,Loops,Csv,Maxima,我有两组x[xmin,xmax]和y[ymin,ymax],我想执行一个从最小值到最大值的函数x和y。所以我想把一个函数应用于x和y的笛卡尔积。然后,我想将每个组合作为一行保存到CSV文件中。我已经尝试了一段时间的do循环,但最后还是有点纠结于如何创建列表。例如: for x: 1 thru 2 step 1 do for y: 1 thru 2 step 1 do print([x,y,find_root (exp(a*x) = y, a, 0, 1)]) 我会得到x和y的值以及所有组合
x
[xmin,xmax]
和y
[ymin,ymax]
,我想执行一个从最小值到最大值的函数x
和y
。所以我想把一个函数应用于x
和y
的笛卡尔积。然后,我想将每个组合作为一行保存到CSV文件中。我已经尝试了一段时间的do
循环,但最后还是有点纠结于如何创建列表。例如:
for x: 1 thru 2 step 1 do
for y: 1 thru 2 step 1 do
print([x,y,find_root (exp(a*x) = y, a, 0, 1)])
我会得到x
和y
的值以及所有组合的函数,但我很难保存它并将其导出为CSV,因为我不知道如何创建带有[[1,1,函数(1,1)],[1,2,函数(1,2)],[2,1,函数(2,1)],[2,2,函数(2,2)]的列表,我可以用写入数据导出
或者,我想使用:
xlist:makelist(x,x,1,2,1);
ylist:makelist(y,y,1,2,1);
create_list([x,y,x^y],x,xlist,y,ylist);
在这种情况下,我不知道如何在createlist中包含该函数,也不知道如何使用map
我该怎么做,还是有更好的方法?关于加快100万项列表的构建,如何只解一次方程,然后替换x和y的值?例如:
solve (exp(a*x) = y, a);
my_solution : rhs (first (%));
create_list ([x, y, ev (my_solution)], x, xlist, y, ylist);
此处ev
使用其包含的变量(即x
和y
)的当前值对my\u解决方案
进行评估
关于编写CSV文件,请尝试以下操作:
write_data (my_list, "my_output_file", 'comma);
我刚刚意识到createlist实际上接受函数。xlist:makelist(x,x,1,2,1);ylist:makelist(y,y,1,2,1);创建_列表([x,y,find_root(exp(a*x)=y,a,0,1)],x,xlist,y,ylist);但是假设x和y的笛卡尔积有一百万个组合,这可能需要一些时间