matlab中向量的连续元素



我正在尝试显示一个向量的n个连续数字(在本例中为向量x(的某个值。

x = [1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0];

例如,我可能想要4个连续数字的前3个值,这将是(每个4位的3个值(:

1111
1100
0011

我可能想要2个连续数字的前4个值,这将是(每个2位的4个值(:

11
11
11
00

CCD_ 1是一个双阵列。实现这一目标的简单方法是什么?

最简单的方法是将x重塑为一个矩阵,每个值的位数为行数(MATLAB是列主(。例如,要获得4位数的值:

t = reshape(x,4,[]);

只有当x的长度平均划分为4时,这才会起作用。您可以首先将x裁剪到适当数量的元素,以避免长度不可整除的错误:

t = reshape(x(1:4*3),4,[]);

现在,转换为字符串的转置矩阵t看起来像您想要的输出:

c = char(t.' + '0');

输出是一个3x4字符数组:

'1111'
'1100'
'0011'

您可以使用bin2dec:将这些二进制表示转换回数字

b = bin2dec(c);

输出为三元双矢量:

15
12
3

相关内容

  • 没有找到相关文章

最新更新