gpt4 book ai didi

matlab - 空的 `()` 在 Matlab 矩阵上做什么?

转载 作者:太空宇宙 更新时间:2023-11-03 19:09:24 25 4
gpt4 key购买 nike

Matlab 中,当 M 是矩阵时,表达式 M() 究竟做了什么?

>> M = magic(3);
>> M()

ans =

8 1 6
3 5 7
4 9 2

表达式 isequaln(M, M()) 在所有情况下都为真吗? M() 只是 M 的副本,还是一个相同的表达式,或者是否有任何上下文引用 M() 有其他含义而不是引用M?也许在运算符重载的情况下?

最佳答案

除此之外,它还会给出一些函数的默认操作,例如 rand(),以及 imagesc()spy 等彩蛋() (这在没有 () 的情况下也可以工作),它似乎是一种更有效的访问整个数组的方法,只要它们的维数低于 5(正如@Rody Oldenhuis 发现的那样) 。例如:

a=rand(2^12);

tic
for j=1:1e5
a ;
end
toc

tic
for j=1:1e5
a(:) ;
end
toc

tic
for j=1:1e5
a() ;
end
toc

产量:

Elapsed time is 0.047250 seconds.
Elapsed time is 0.022260 seconds.
Elapsed time is 0.011925 seconds.

但是,对于赋值,a1=aa1=a() 之间的差别很小,后者慢 1.5%...

也许这个话题会回答你关于 operator overloading 的一些问题.

关于matlab - 空的 `()` 在 Matlab 矩阵上做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13679749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com