p = nan(1, length(inds));
时间: 2024-03-22 17:39:34 浏览: 85
OpenPCDet ingroup-inds库 windows编译
5星 · 资源好评率100%
在 MATLAB 中,`nan` 函数可以创建一个指定大小的数组,并将其中的元素全部赋值为 NaN(Not a Number)。
在这里,`p` 是一个长度为 `length(inds)` 的数组,初始值都被赋值为 NaN。它的作用是存储从起点到终点的最短路径上的节点。
具体实现过程可以参考以下代码:
```matlab
function p = get_path(cameFrom, current)
inds = find_nonempty(cameFrom);
p = nan(1, length(inds));
i = length(inds);
while isKey(cameFrom, current)
p(i) = current;
current = cameFrom(current);
i = i - 1;
end
p(i) = current;
end
```
该函数会首先调用 `find_nonempty` 函数获取非空元素的索引,然后利用 `nan` 函数创建一个初始值为 NaN 的数组 `p`,用于存储最短路径上的节点。
接着,从终点开始倒序遍历每个节点的前驱节点,将它们存储在 `p` 数组中,并返回最短路径。在存储节点时,需要注意数组 `p` 的索引与字典 `cameFrom` 中节点的索引是反向的,因此需要从数组末尾开始存储节点。
阅读全文