gpt4 book ai didi

matlab - Matlab中获取度量矩阵的简单方法

转载 作者:行者123 更新时间:2023-12-02 02:16:34 25 4
gpt4 key购买 nike

假设我有一个字符串向量,并且编写了一个函数来查找两个字符串之间的距离。

我想获得由该函数确定的距离矩阵。我知道用循环来实现这一点的蛮力方法,但是还有其他更简单的路径吗?

例如:

我的功能:

function [value] = func(str1, str2)
value = abs(str1(1) - str2(1))
end

获取度量矩阵的艰苦方法

v = ['str'; 'rew'; 'ter'];
num = length(v);
metrMat = zeros(num);
for ii = 1:num
for jj = 1:num
metrMat(ii,jj) = func(v(ii),v(jj));
end
end
metrMat

>metrMat =

> 0 1 1
> 1 0 2
> 1 2 0

最佳答案

为什么你这么不愿意使用for循环?他们的速度相当快。

利用度量矩阵的对称性,可以改进 for 循环:

for ii = 1:num
for jj = 1:ii
metrMat(ii,jj) = func(v(ii),v(jj));
end
end

metrMat = metrMat + tril(metrMat)'

如果您有权访问统计工具箱,这可以通过一行实现:

metrMat = squareform(pdist(v(1:num)'));

关于matlab - Matlab中获取度量矩阵的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29563536/

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