在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()and 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=a但是,对于作业, vs之间几乎没有区别a1=a(),后者慢了 1.5%...
也许这个线程会回答你关于操作符重载的一些问题。