matlab中如何將二進位制向量按位拆為矩陣形式

2021-04-17 19:11:23 字數 4646 閱讀 7227

1樓:匿名使用者

b是字串形式的

嗎?如果是這樣就專

可以:屬

b=['0101';'0000';'1010';'1111']b =0101

0000

1010

1111

>> b-48

ans =

0 1 0 1

0 0 0 0

1 0 1 0

1 1 1 1

matlab中如何將二進位制矩陣轉為十進位制矩陣

2樓:志當存高遠

您好,是這樣的:

a=[1 2 3 ;4 5 6 ;7 8 9];

b=dec2bin(a)%將a轉為二進位制

c=cell(size(a))%由於得到的b的形狀與a不同,我們建立一個新的元胞資料c

for i=1:length(b)

c=b(i,:);%得到的c就與a的形狀一樣了endd=cell(size(a));%再建立兩個元胞矩陣,分別存放奇數與偶數項

e=cell(size(a));

for i=1:length(b)

d=c(1:2:end);%d為奇數項

e=c(2:2:end);%e為偶數項end

matlab中將一個向量矩陣轉化為一列向量矩陣

3樓:兔子和小強

函式bai

輸入是個n1 * n2矩陣,返回(n1^2) * (n2/n1)的矩陣。dun2要能整zhi除n1。

你應該輸入dao4*8或4*12之類的矩陣。

函式寫的很麻煩回,可以答簡化下:

function y = zhuanlie(x)y = reshape(x', size(x,2)/size(x,1), )';

end或直接使用控制代碼:

zhuanlie = @(x)reshape(x', size(x,2)/size(x,1), )';

如何將matlab中的矩陣以二進位制儲存?

4樓:匿名使用者

假設你要儲存的矩陣為m;如下

所示:m=[1 2 3 4;5 6 7 8;1 1 1 1];

fp = fopen('a.txt','wb');

fprintf(fp,'%f\r\n',m);

fclose(fp);

這樣就把m中的資料儲存在當前目錄下的a.txt檔案裡了,你是要把矩陣的資料轉換為二進位制後在儲存為二進位制形式嗎?

5樓:匿名使用者

1.matlab:

fid=fopen("bif.bin","wb");

fwrite(fid,a','double');%a是矩陣,double是儲存檔案的資料型別。a'是a的轉置,原因是,在matlab中資料是按列存放,c中是按行。所以在matlab中應先進行轉置,這樣

%到c中讀出的資料才是正確的。

2.c:

(1)c中使用fopen,讀取到二維陣列中int num_read = fread(buf, 1, length, fp);(2)舉例:

matlab中怎麼將一個矩陣變為一個行向量

6樓:我去月球遼

reshape(x,m,n)%%x為行向量,m*n=length(x)

>> a=rand(1,16);

>> b=reshape(a,2,8)

b =0.4447 0.7919 0.7382 0.4057 0.9169 0.8936 0.3529 0.0099

0.6154 0.9218 0.1763 0.9355 0.4103 0.0579 0.8132 0.1389

>> b=reshape(a,4,4)

b =0.4447 0.7382 0.

9169 0.35290.6154 0.

1763 0.4103 0.81320.

7919 0.4057 0.8936 0.

00990.9218 0.9355 0.

0579 0.1389擴充套件資料matlab矩陣變換:

1、對角陣:

對角矩陣:只有對角線上有非零元素的矩陣。

數量矩陣:對角線上的元素相等的對角矩陣。

單位矩陣:對角線上的元素都為1的對角矩陣。

2、提取矩陣的對角線元素

diag(a):提取矩陣a主對角線元素,產生一個列向量。

diag(a,k):提取矩陣a第k對角線元素,產生一個列向量。

3、上三角陣:triu函式

triu(a)提取矩陣a的主對角線以及以上的元素。

triu(a,k)提取矩陣a的第k條對角線以及以上的元素。

7樓:匿名使用者

b=reshape(a.',1,8);

你可以看一下reshape函式,就是幹這個的。

另外reshape讀取元素是按列優先的,所以a要做個轉置。

8樓:匿名使用者

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

b=[a(1,:),a(2,:)]

採用矩陣裁剪組合

a =1 2 3 43 3 4 1

b =1 2 3 4 3 3 4 1

9樓:刁智覃黎

b=reshape(a.',1,8);

看下reshape函式幹

另外reshape讀取元素按列優先所a要做轉置

10樓:薩蘊秀旁良

a=[a1

a2a3];可以合併成一個新的行向量

a=[a1;a2;a3]可以合併成一個新的矩陣,每一行就是原來的一個行向量

matlab怎麼把一個十進位制矩陣用二進位制輸出

11樓:公西南風

給你寫了下

a=[1 2 3 ;4 5 6 ;7 8 9];

b=dec2bin(a)%將a轉為二進位制

c=cell(size(a))%由於得到的b的形狀與a不同,我們建立一個新的元胞資料c

for i=1:length(b)

c=b(i,:);%得到的c就與a的形狀一樣了endd=cell(size(a));%再建立兩個元胞矩陣,分別存放奇數與偶數項

e=cell(size(a));

for i=1:length(b)

d=c(1:2:end);%d為奇數項

e=c(2:2:end);%e為偶數項

end結果:

a =1 2 3

4 5 6

7 8 9

>> b

b =0001

0100

0111

0010

0101

1000

0011

0110

1001

>> c

c ='0001' '0010' '0011'

'0100' '0101' '0110'

'0111' '1000' '1001'

>> d

d ='00' '01' '01'

'00' '00' '01'

'01' '10' '10'

>> e

e ='01' '00' '01'

'10' '11' '10'

'11' '00' '01'

matlab怎麼把一個行向量變成一個矩陣

12樓:智慧小白菜

1、在我們的電腦上開啟matlab,在命令列視窗中輸入「r = [ 1 2 3 4 ];tr = r'」,其中單引號(')是用於轉置版操作的。

2、按回車鍵權之後,可以看到將行向量r轉置成為了列向量tr。

3、也可以將列向量轉置成為行向量,在命令列視窗中輸入「v = [1;2;3;4];tv = v'」。

4、按回車鍵之後,可以看到將列向量v轉置成為了行向量tv。

5、對矩陣進行轉置,矩陣轉置的操作也是通過單引號(')來實現的,在命令列視窗輸入**。

6、按回車鍵之後,可以看到將a矩陣的每列轉置成了b矩陣的每行,a矩陣的每行轉置成了b矩陣的每列。

13樓:宇逸

好像沒有直接能變成想要的函式,不過有個變維函式,reshape函式。

另外記住矩版陣元素的排列是從上到權下,從左倒右的,按照這個規則以及變維函式可以實現想要的功能:

>> a=1:6

a =1 2 3 4 5 6>> b=reshape(a,3,2)'

b =1 2 3 4 5 6

14樓:心如漂漂

matlab中有reshape函式!

二進位制怎麼轉十進位制,二進位制如何轉化為十進位制

先寫出二進位制各位上代表的數字,然後運用加法即可計算出來。舉例二進位制10101110轉換成十進位制,這個二進位制數是8位的,那麼我們寫出8位二進位制數每位上的數字。最右邊位是個位,無論幾進位制,它都是1 然後寫左邊位是右邊位乘以2得到,因為我們要轉換的是二進位制 轉換n進位制就乘以n好了 這樣寫到...

將二進位制數轉換成十進位制數,二進位制數如何轉換成十進位制數?

1乘以2的5次方 0乘以2的4次方 1乘以2的3次方 0乘以2的2次方 1乘以2的1次方 每個數都這樣算就可以了 要什麼過程,你用計算器,按到二進位制,一轉不就行樂 10101 1 2 4 0 2 3 1 2 2 0 2 1 1 2 0 16 4 1 21 同理,110001 1 2 5 1 2 4...

二進位制轉十進位制演算法,二進位制轉十進位制演算法 01100000 00101100 01011000 11001010要具體演算法過程 文字解釋不給

從左往右算,左邊一位乘以2加上後一位,依次算下去 01100000 0 2 0 0 2 1 0 2 2 0 2 3 0 2 4 1 2 5 1 2 6 0 2 7 96 00101100 0 2 0 0 2 1 1 2 2 1 2 3 0 2 4 1 2 5 0 2 6 0 2 7 44 01011...