Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想将整数向量转换为逻辑矩阵。这就是我想要的方式。假设向量的大小为 M,最大元素为 A。输出应该是大小为 MxA 的逻辑矩阵,其中值为 v_i 的每一行从第 1 列到 (v_i - 1) 为 0,从列中为 1 v_i 到 A。这是一个例子:
3 4 4 1
输出应该是:
0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1
我可以通过循环很容易地做到这一点,但是在 MATLAB 中是否有一种无循环的方式来做到这一点?
简单的。首先定义您的数据:
vector = [3; 4; 4; 1]; M = length(vector); A = 4;
然后(使用bsxfun):
bsxfun
output = bsxfun(@ge, 1:A, vector(:));
或者(使用repmat):
repmat
output = repmat(1:A,M,1) >= repmat(vector(:),1,A);