代价矩阵来自一个没有for循环的数组。

4次浏览(过去30天)
丹尼尔·亚当斯
丹尼尔·亚当斯 2021年9月29日
编辑: 骑自行车的人 2021年9月29日
嗨,我想创建一个矩阵与条目的绝对值之间的每个点在一个数组。
我的数组叫做domain,它的长度是grid_number。
我已经在下面的代码中完成了这一点,但是我使用了一个for循环。当grid_number较大时,运行时间较长。有没有简单的方法来做这个?
我= 1:grid_number
j = 1: grid_number
成本(i, j) = abs(域(i)域(j))
结束
结束

接受的答案

骑自行车的人
骑自行车的人 2021年9月29日
编辑:骑自行车的人 2021年9月29日
你可以用隐式展开来减去两个向量,通过转置其中一个。
成本= abs (domain-domain。');
如果您有一个较旧的MATLAB版本,它不支持隐式展开,您可以使用金宝app
成本= abs (bsxfun (@minus、域、域'));

答案(1)

马特·J
马特·J 2021年9月29日
编辑:马特·J 2021年9月29日
成本= abs(域(:)域(:)。”);

社区寻宝

在MATLAB Central中找到宝藏,并发现社区可以如何帮助你!

开始狩猎!