小编Osi*_* Xu的帖子

有没有有效的简单方法来比较Mathematica相同长度的两个列表?

鉴于两个列表A={a1,a2,a3,...an}B={b1,b2,b3,...bn},我会说A>=B,当且仅当所有ai>=bi.

有两个列表的内置逻辑比较A==B,但没有A>B.我们需要像这样比较每个元素吗?

And@@Table[A[[i]]>=B[[i]],{i,n}]

有什么更好的技巧吗?

编辑: 非常感谢大家.

这是另一个问题:

如何在N个列表中找到最大列表(如果存在)?

使用Mathematica在N个列表中查找具有相同长度的最大列表的任何有效简便方法?

arrays wolfram-mathematica list mathematica-8

11
推荐指数
2
解决办法
4890
查看次数

如何删除Mathematica中表中的Null符号?

我需要IfTable循环内部使用,例如Table[If[i< 3, i], {i, 5}]将给出{1, 2, Null, Null, Null}

但我希望结果如此{1,2}.

对此有任何修复?

编辑:
如果我们考虑Table[If[i< 3, f[i]], {i, 5}]哪个给出了什么{f[1], f[2], Null, Null, Null}

null wolfram-mathematica

10
推荐指数
4
解决办法
1万
查看次数

如何使用AWK或sed或Perl进行此类替换?

想要使用以下替换规则将乘法符号"*"替换为"tensor",将幂符号"^"替换为"p_tensor":

    a(k)^n --> p_tensor(n,a(k))
    a(i)*a(j) --> tensor(a(i),a(j)), when i=/=j
Run Code Online (Sandbox Code Playgroud)

但是当符号"*"在数字和(i)之间时,例如3*a(i),我们应该将符号"*"保持为它.

例如,

    5*a(i)*a(j)*(a(k1)+3*a(k2)) --> 5*tensor(tensor(a(i),a(j)),a(k1)+3*a(k2))
    a(i)^2*a(j)^2  --> tensor(p_tensor(2,a(i)),p_tensor(2,a(j)))
    ...
Run Code Online (Sandbox Code Playgroud)

现在我想使用AWK或sed或Perl重新格式化以下表达式:

    3*a(3)^2+6*a(1)^2*(5*a(2)^2-2*a(4))+6*a(2)*a(4)+6*a(1)*(-4*a(2)*a(3)+a(5))
Run Code Online (Sandbox Code Playgroud)

有什么想法?

替换后的预期结果应为

    3*p_tensor(2,a(3))+6*tensor(p_tensor(2,a(1)),(5*p_tensor(2,a(2))-2*a(4))+6*tensor(a(2),a(4))+6*tensor(a(1),(-4*tensor(a(2),a(3))+a(5))
Run Code Online (Sandbox Code Playgroud)

bash shell perl awk sed

7
推荐指数
1
解决办法
232
查看次数

如何编译程序使其能够在32位Linux上使用> 4GB内存?

整个代码用C,C++和Fortran编写.是否可以使用超过4GB的内存.现在它在达到3GB内存时总是崩溃.

如果可能,如何设置编译选项(或配置标志)?

我们可以使用gcc,g ++,...或intel编译器

我们的操作系统:Fedora 12 x32

cat /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm tpr_shadow vnmi flexpriority
bogomips : 5319.72
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, …
Run Code Online (Sandbox Code Playgroud)

c c++ linux fedora

4
推荐指数
1
解决办法
1469
查看次数

使用bash shell自动删除由关键字分隔的千兆字节行的最快方法是什么?

例如,给定一条线a11b12c22d322 e...,break的字段是数字或空格,我们想将其转换为

a
b
c
d
e
...
Run Code Online (Sandbox Code Playgroud)

sed 需要将整行读入内存,对于千兆字节一行,它不会有效,如果我们没有足够的内存就无法完成工作.

编辑:

谁能解释grep,tr,awk,perl和python如何在读取大文件时操作内存?他们一次读入内存的内容是多少?

bash shell perl awk sed

4
推荐指数
1
解决办法
181
查看次数

如何使用计算机代码检查无限集是否已关闭?

给定k个正整数a 1 <a 2 <a 3 <... <a k,并且所有整数都大于k,我们想检查集合A = {a i:i∈[1,k]} ∪{n:n> a k,n∈ℕ} = {a 1,a 2,a 3,...,a k,a k +1,a k + 2,...}在加法时关闭.这意味着:

Σ 1≤I≤ķ一个*B ∈A,对于任何非负整数b .

例如,{2,4,6,7,8,....}在添加时关闭.

有没有简单的方法来做到这一点?我们可以在Mathematica或Matlab中使用的任何函数?

c++ math matlab wolfram-mathematica set

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

如何使用Mathematica按每个列表的元素总和对N个列表进行排序?

给定一个包含k子列表的列表,让 A={{a1,a2,a3,...},{b1,b2,b3,...},...}我想按照它们对这些子列表进行排序Total[A[i]].有没有有效的方法来做到这一点?

sorting wolfram-mathematica list mathematica-8

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

使用Mathematica在N个列表中查找具有相同长度的最大列表的任何有效简便方法?

这个问题是前一个线程的延续,用于比较具有相同长度的两个列表:

有没有有效的简单方法来比较Mathematica相同长度的两个列表?

鉴于两个列表A={a1,a2,a3,...an}B={b1,b2,b3,...bn},我会说A>=B,当且仅当所有ai>=bi.现在我们有了k列表H={{a11,a12,a13,...a1n}, {a21,a22,a23,...a2n},...,{ak1,ak2,ak3,...akn}},并希望找到最大的列表(如果存在).

这是我的代码:

Do[If[NonNegative[Min[H[[i]] - h]], h = H[[i]], ## &[]], {i, h = H[[1]]; 1, Length[H]}];h

有没有更好的技巧呢?

编辑:

我想将其定义为以下函数:

maxList[H_]:=Do[If[NonNegative[Min[H[[i]] - h]], h = H[[i]], ## &[]], {i, h = H[[1]]; 1, Length[H]}];h

但问题是上面的代码跨越两行,对此有什么解决方法吗?这里有一些代码工作,但不是很漂亮

maxList[H_] := Module[{h = H[[1]]}, Do[If[NonNegative[Min[H[[i]] - h]], h = H[[i]], ## &[]], {i, Length[H]}]; h]

要么

maxList[H_]:=Last[Table[If[NonNegative[Min[H[[i]] - h]], h = H[[i]], ## &[]], {i, h = H[[1]]; 1, Length[H]}]]

arrays wolfram-mathematica list mathematica-8

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

标签 统计

wolfram-mathematica ×5

list ×3

mathematica-8 ×3

arrays ×2

awk ×2

bash ×2

c++ ×2

perl ×2

sed ×2

shell ×2

c ×1

fedora ×1

linux ×1

math ×1

matlab ×1

null ×1

set ×1

sorting ×1