更好的方法来评估矩阵

1视图(30天)
JaeSung崔
JaeSung崔 2017年11月21日
编辑: Stephen23 2017年11月21日
等给出向量后,我想让方阵这样
%不变,原来的形式
N = 500;
x = 2 *π* linspace (0, 1, N);
i = 1: N
j = 1: N
年代(i, j) = sin (x (i) - x (j))
结束
结束
但这是太慢了,所以最近我编辑后,但还是太慢了! !
有人能帮我吗?
%不变
N = 500;
x = 2 *π* linspace (0, 1, N);
我= 1:N;
(:,i) = x(我);
结束
s =罪(年代);

接受的答案

Stephen23
Stephen23 2017年11月21日
编辑:Stephen23 2017年11月21日
你真的需要学习如何编写 向量化代码 。解决每个任务使用很多丑陋的循环不是一个有效的方式编写MATLAB代码。试试这个:
N = 500;
vec = 2 *π* linspace (0, 1, N);
垫=罪(bsxfun (vec) @minus、vec (:))

答案(1)

安德烈Bobrov
安德烈Bobrov 2017年11月21日
编辑:安德烈Bobrov 2017年11月21日
N = 500;
x = 2 *π* linspace (0, 1, N);
s = sin (x (:)”- x (:));
MATLAB的旧版本:
s =罪(bsxfun (@minus x(:)的x (:)));
1评论
Stephen23
Stephen23 2017年11月21日
编辑:Stephen23 2017年11月21日
注意,输出是转置相比中给出的代码问题。

登录置评。

类别

找到更多的在调整和重塑矩阵帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!