gpt4 book ai didi

matlab - 通过对行和列的谓词生成 bool 矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:31 24 4
gpt4 key购买 nike

我有以下向量:

y = [1; 3; 2; 3; 1];

它的所有值都在 1n 之间(在本例中为 3),表示不同的选项。

我想创建一个大小为 size(y, 1) x n 的矩阵,其行对应于 y 值:

1 0 0 % because y(1) = 1
0 0 1 % because y(2) = 3
0 1 0 % because y(3) = 2
0 0 1
1 0 0

一种方法是

Y = zeros(size(y, 1), num_labels);
for i = 1:m
Y(i, y(i)) = 1;
end

是否有更好的方法来做到这一点,也许是在一个表达式中?
基本上,我需要的是生成一个带有 bool 谓词的矩阵 (i, j) => j == y(i)

最佳答案

如果 a 是一个列向量,你可以试试这个

a =  [1; 3; 2; 3; 1];

bsxfun(@eq, a, [1:max(a)])

这是一个行向量

a =  [1; 3; 2; 3; 1]';

bsxfun(@eq, a', [1:max(a)])

关于matlab - 通过对行和列的谓词生成 bool 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10813825/

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