gpt4 book ai didi

matlab - 在不使用 'for' 循环的情况下访问 MATLAB 中矩阵的所有元素

转载 作者:行者123 更新时间:2023-12-01 15:19:29 25 4
gpt4 key购买 nike

如果这很容易解决,请原谅我,但是,我在 MATLAB 中有一个包含距离值的上三角矩阵。假设每个第 i 个和第 j 个值分别有行标签和列标签(考虑到矩阵分别包含每个对应行和元素的 {i,j} 值)。我想创建一个如下所示的文本文件:

    Label-i val Label-j 

其中 i 和 j 是各自的列标签。使用 2 个 for 循环遍历所有元素非常简单。

    [r,~] = size(A);
mat = [];
for i = 1:r
for j = 1:r
tmpmat = [collabels(i) A(i,j) rowlabels(j)];
mat = [mat;tmpmat];
end
end

但是,我想知道有什么更快的方法可以做到这一点。以前在论坛上看到过类似的帖子,但不完全与此有关。如果有人能给我一些关于这方面的见解,那就太好了。我看到了 arrayfun 和其他可以使用的 MATLAB 函数,但是,我不知道在这种情况下如何使用它们。谢谢您的帮助。

最佳答案

Meshgrid 将为您提供所有行 x 列组合。

[XX,YY] = meshgrid(collabels,rowlabels);
mat = [XX(:) A(:) YY(:)];

关于matlab - 在不使用 'for' 循环的情况下访问 MATLAB 中矩阵的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31846274/

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