簡體   English   中英

如何在MATLAB中合並矩陣的元素

[英]How to merge elements of a matrix in MATLAB

我正在處理二進制數,行矩陣為1 x 12。

A=[1 0 1 1 0 1 1 1 1 0 0 1]

我想將3個組中的12個項目合並,以便可以將它們保存在數組中。 例如。

ARR[1]=1011
ARR[2]=0111
ARR[3]=1001

在MATLAB中有什么方法可以做到這一點?

現在已經有一段時間沒有與Matlab合作了,但是我認為這樣可以滿足您的需求:

A=[1 0 1 1 0 1 1 1 1 0 0 1];
n = size(A) / 4;

for 1:n
    ARR(1:4,n) = A(n + (n-1)*4 : n*4);
end

您可以生成一個矩陣,其中每一行都是一組:

A = [1 0 1 1 0 1 1 1 1 0 0 1];
B = reshape(A, [], 3).';

B =
     1     0     1     1
     0     1     1     1
     1     0     0     1

如果您確實需要將組作為嵌套數組,則可以轉換為單元格數組。 但這可能不是必需的,並且效率不如數字矩陣高:

B = reshape(A,[],3).';
B = mat2cell(B,ones(size(B,1),1));

B{1} =
     1     0     1     1
B{2} =
     0     1     1     1
B{3} =
     1     0     0     1

在Matlab中,二進制數字表示為字符串。

https://ch.mathworks.com/matlabcentral/newsreader/view_thread/339967

因此,您可以將結果存儲為代表二進制數字的3x4字符矩陣:

reshape(dec2bin(A), [4 3])'

ans =

1011
0111
1001

或將它們存儲為數字(稍后使用dec2bin將它們轉換為二進制字符串):

bin2dec(reshape(dec2bin(A), [4 3])')

ans =

11
 7
 9

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM