小编nil*_*ock的帖子

Mathematica OO系统(或替代品)?

OO系统是Mathematica中OOP的免费开源软件包.通过使用面向对象系统,我希望受益于两全其美(OOP/Functional).

  • Mathematica的OO系统的注意事项是什么?
  • 您是否了解(更好)开源替代品?
  • 你愿意展示一些你的OO系统课吗?
  • 有关Mathematica的OOP的任何评论?

oop wolfram-mathematica

3
推荐指数
1
解决办法
1081
查看次数

如何逃离Mathematica中的@?

背景:

在OO-System中的格式

  object.method[var] 
Run Code Online (Sandbox Code Playgroud)

  object@method[var]
Run Code Online (Sandbox Code Playgroud)

基本上dot变成了alpha.

我正在生成(XML回到)代码.

题:

  In[22]:= a /. a -> b
  Out[22]= b
Run Code Online (Sandbox Code Playgroud)

按预期工作.

现在我想改变

   a
Run Code Online (Sandbox Code Playgroud)

  a@new[b]
Run Code Online (Sandbox Code Playgroud)

具有以下(不需要的)结果(因为@在Mathematica中保留)

  In[23]:= a /. a -> a@new[b]
  Out[23]= a[new[b]]
Run Code Online (Sandbox Code Playgroud)

虽然

  In[25]:= a /. a -> "a@new[b]]"
  Out[25]= "a@new[b]]"
Run Code Online (Sandbox Code Playgroud)

似乎可以做到这一点,现在b仍然没有评估,因此也没有评估表达式.

在这种情况下如何"逃避"@?

wolfram-mathematica

3
推荐指数
1
解决办法
233
查看次数

在处理递归函数时如何提高(mathematica)性能?

背景.我想打印一张31 ^(1/2)的会聚表.我对表进行了以下递归定义.(交换31 ^(1/2)黄金比率,下表将包含斐波那契系列).

 cf := ContinuedFraction
 tf := TableForm
 p[-1] = 0; p[0] = 1; q[-1] = 1; q[0] = 0;
 a[k_] := cf[Sqrt[31], k][[k]]
 p[k_] := a[k]*p[k - 1] + p[k - 2]
 q[k_] := a[k]*q[k - 1] + q[k - 2]
 s[n_] := Timing[Table[{k, a[k], p[k], q[k]}, {k, 8, 8 n, 8}]] // tf
Run Code Online (Sandbox Code Playgroud)

时间以指数方式快速增长.我不得不alt +.(中止)s [4].

问题:如何在处理递归函数时提高(mathematica)性能?

algorithm wolfram-mathematica

3
推荐指数
2
解决办法
849
查看次数

Viewpoint->{x,y,z} 的变化对图形对象大小的影响不是我所期望的。怎么修?

如果您运行以下代码片段:

 Manipulate[
   Graphics3D[
     {Cuboid[{{-1, -1, -1}, {1, 1, 1}}], Sphere[{5, 5, 5}, 1]}, 
      ViewPoint -> {1, 1, a}, AxesOrigin -> {0,0,0}
   ], 
   {a, 1, 100}
 ]
Run Code Online (Sandbox Code Playgroud)

并使用滑块将视点从 (1,1,1) 移动到 (1,1,100),您将看到一段时间后对象的大小保持固定。

问题。

1. 当我将视点移离场景更远时,我希望对象变得更小。这应该如何在 Mathematica 中完成?

( 编辑: )

2. “相机”相对于 Viewpoint 的位置是什么?

wolfram-mathematica

2
推荐指数
1
解决办法
515
查看次数

如何处理Mathematica中的"Tag Arrow is Protected"消息?

背景:为了支持我对伽罗瓦理论的研究,我想从多项式中计算伽罗瓦群.这个功能在Mma中并不容易获得,所以我询问并建议在Mma(或其他Sage/Pari)中使用galois包.galois包可以从这个位置下载.http://library.wolfram.com/infocenter/Articles/2872/(Galois包是在Mma 3时代写的.)

加载包时galois.m,Mma显示以下消息:

<<galois.m
SetDelayed::write: Tag Arrow in Arrow[Color_,{{x1_,y1_},{x2_,y2_}}] is Protected. >>
SetDelayed::write: Tag Norm in Norm[Poly_,a_Symbol] is Protected. >>
SetDelayed::write: Tag Norm in Norm[Poly_,{a__Symbol}] is Protected. >>
General::stop: Further output of SetDelayed::write will be suppressed during this calculation. >>
Run Code Online (Sandbox Code Playgroud)

问题:(Arrow等等)的简单Unprotect是否足以处理此问题?(我还没有尝试过.我想在修改任何标准软件包之前先等待专家建议).

编辑:重构到Arrow1(或ArrowFnc)后仍然存在问题.这已经过测试

 CircleGraph[{a, b, c, d, -a, -b, -c, -d}, F];
Run Code Online (Sandbox Code Playgroud)

(来自随附笔记本中的示例.)不生成图表.

 CircleGraph[{a, b, c, d, -a, -b, -c, -d}, F]
Run Code Online (Sandbox Code Playgroud)

(没有;)生成一个附加文本的图形,如FontForm [Symbol,18].箭头应仅包含变量a,b,c等的文本.

进一步的调查表明,FontForm最终被弃用,Mma 没有检测到.见http://reference.wolfram.com/mathematica/ref/FontForm.html

wolfram-mathematica

2
推荐指数
1
解决办法
1234
查看次数

如何使用Java程序将数据写入Firebase

我正在尝试将数据写入现有的Firebase数据库,但未写入任何数据。

有没有可以将数据写入Firebase数据库的示例Java程序?

我所做的事如下:

package org.nilostep.bota.dcp.export;

import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import com.google.firebase.auth.FirebaseCredentials;
import com.google.firebase.database.*;

import java.io.FileInputStream;
import java.util.HashMap;
import java.util.Map;

public class ReadWriteFirebase {

    private static final String DATABASE_URL = " (the url of my database) ";


    public static void main(String[] args) throws Exception {
    FileInputStream serviceAccount =
            new FileInputStream("bota-6e0b33e3f1fe.json");

    FirebaseOptions options = new FirebaseOptions.Builder().setCredential(FirebaseCredentials.fromCertificate(serviceAccount)).setDatabaseUrl("https://bota-313fb.firebaseio.com").build();

    FirebaseApp.initializeApp(options);

    DatabaseReference db = FirebaseDatabase.getInstance().getReference().child("testdata");

    Map<String, String> users = new HashMap<>();
    users.put("A", "Jaap");
    System.out.println(users);
    db.setValue(users);

    System.out.println(db);
}
Run Code Online (Sandbox Code Playgroud)

}

“ testdata”是数据库根目录下的现有子级。

程序的第二版

public static void main(String[] args) …
Run Code Online (Sandbox Code Playgroud)

java firebase firebase-realtime-database

2
推荐指数
1
解决办法
1876
查看次数

如何使用带正则表达式的数字在文本后提取数字?

用正则表达式

(\d+\.\d{2})
Run Code Online (Sandbox Code Playgroud)

我从字符串中提取2位小数的数字

Ams1.74 Rot1.26 Lon1.28
Run Code Online (Sandbox Code Playgroud)

结果将是

1.74 1.26 1.28
Run Code Online (Sandbox Code Playgroud)

现在,我发现字符串AX1和AX2也可能出现在数字之前,我的问题是:我将如何获得

1.74 1.26 1.28
Run Code Online (Sandbox Code Playgroud)

从字符串

AX11.74 Rot1.26 AX21.28
Run Code Online (Sandbox Code Playgroud)

用正则表达式?

java regex

2
推荐指数
1
解决办法
76
查看次数