在MathGL中,如何在数学运算后获取数组的值

in MathGL how to get values an array after math operation

提问人:Dickens A S 提问时间:7/24/2021 最后编辑:Dickens A S 更新时间:7/25/2021 访问量:91

问:

我有一个代码可以完美地绘制正弦波图

y = mgl_create_data_size(100,1,0);
mgl_data_modify(y,"0.4*y+0.1+sin(6*pi*x)",0);
gr = mgl_create_graph(WINDOW_WIDTH, WINDOW_HEIGHT);
mgl_plot(gr,y,". ","");
mgl_box(gr);

现在变量是 MathGL 数据类型 我
将如何从中获取数值
yHMDT

我看到有功能mgl_data_get_value(y,i,j,0);

但它只接受 long 数据类型,并且始终返回 NaN

c 数学

评论


答:

0赞 Dickens A S 7/25/2021 #1

我找到了答案,我试图假设为增量价值。j

但是,基于反复试验,当我设置为时,我得到了基于公式应用的所有图形值。j0100MathGL0.4*y+0.1+sin(6*pi*x)

所以函数的假设是
如果设置的数据是 = - X 轴值的总数 = - 每个 X 值
= - 只有一个 Y 值,假设为 0,没有 z 轴
,可以获取每个图形值

的函数是
mgl_create_data_size100,1,0nx,ny,nznx100ny1nz0

mgl_data_get_value(y,i,0,0)

相同公式的值示例10

var y1 = mgl_create_data_size(10,1,0)
mgl_data_modify(y1,"0.4*y+0.1+sin(6*pi*x)",0)
for(i in 0..10-1) {
   println(mgl_data_get_value(y1,i,0,0))
}

输出为

0.1
0.9660254037844387
-0.7660254037844384
0.09999999999999976
0.9660254037844391
-0.7660254037844387
0.09999999999999952
0.9660254037844401
-0.7660254037844377
0.09999999999999927

Excel中上述值的图表是 enter image description here

这对于在数据生成中的应用数学中使用MathGL作为轻量级库之一非常有帮助