matlab如何將m行n列的矩陣a擴充套件成m1行n1列的矩

2022-02-20 23:09:43 字數 5997 閱讀 7469

1樓:匿名使用者

第一種做法:

>> a=magic(3)

a =8     1     6

3     5     7

4     9     2

>> b=zeros(size(a)+1);

>> b(1:end-1,1:end-1)=ab =8     1     6     03     5     7     0

4     9     2     0

0     0     0     0

第二種做法:

>> a=magic(3)

a =8     1     6

3     5     7

4     9     2

>> b=a;

>> b(end+1,end+1)=0

b =8     1     6     03     5     7     0

4     9     2     0

0     0     0     0

2樓:匿名使用者

b=zeros(m+1,n+1); b(1:m,1:n)=a;

matlab怎麼將乙個m行n列的矩陣表示成m個一行n列的向量

3樓:匿名使用者

% 使用 reshape(x ,m,n)函式

% 先了解一下reshape的基本用法

% 簡而言之就是將矩陣x—>m*n的新矩陣

% 例如:將 3*4的a矩陣—>2*6的b矩陣

a =[1    4    7    10

2    5    8    11

3    6    9    12];

b = reshape(a,2,6);

% 等價於 b = reshape(a(:),2,6)

% 等價於 b = reshape(a(:),2,)

% 上面執行結果為

b =[ 1     3     5     7     9    11

2     4     6     8    10    12];

% 分析:

% 因為 matlab會將a轉換成a(:)

% 按列輸出 a(:)=[1,2,3,4,5,6,7,8,9,10,11,12];

% 對b,注意b是2行6列,同樣matlab會按列輸入

% b =[ 1     3     .     .     .    11

%      2     .     .     .    10    12];

% 你說的意思,是不是矩陣a的每一列,按列元素拍在一行?

% 第一種方法:

c = reshape(a,1,);

% 第二種方法:

c=a(:)';

由於沒能完全理解題主的意思,題主可以根據我說的,按照reshape函式來解決問題

4樓:匿名使用者

為什麼要這樣表示呢?matlab可以幫助你隨時提取你想要的那一列比如x=[1,2,3;4,5,6;7,8,9];

那麼y1=x(1,:);

y2=x(2,:);

y3=x(3,:);

如果你要用到每一行,不妨這樣:

for i=1:size(x,1)

y=x(i,:);

%這裡你隨便添語句end

5樓:名山之鷹

一,整體介紹,已知乙個m行n列的矩陣,記為a,我們要將它每一行表示為乙個向量

二,所需工具,matlab

三,步驟:

1,獲取矩陣維度:[m,n]=size(a);

2,矩陣a的第i個行向量表示為:a(i,:)。其中,i 是大於等於1,並且小於等於m的整數

6樓:真

你就不把他看作乙個矩陣而是看成m個列向量不就得了。這點理解力都沒有嗎?

7樓:匿名使用者

這個我建議直接讀取它的行,比如我要讀取a[1,2,3;4,5,6;7,8,9]的第二行,matlab命令為a(2,:)。要讀去第一行,matlab命令為a(1,:)。

如果你要讀取第一列的話,matlab命令為a(:,1)

8樓:徐志超

其實沒必要這樣,你要哪行,可以直接輸入語句提取,比如要第2行,假設k是m行n列:

a=k(2,:)

9樓:匿名使用者

用mat2cell命令可以實現講乙個矩陣根據引數分塊的功能

10樓:**神探

如果矩陣a是m 行 n列,而你想將其轉置為n行m列,則使用reshape函式:

b = reshape(a, n, m)

這樣就把a轉成n行,m列的矩陣b了

11樓:羈念

cel={};a=你的矩陣;

for i=1:n

cel=a(:,i);

enda中每一列都放入了cel胞元中的乙個位置

在matlab中如何將四行三列矩陣轉換成二行六列矩陣?

12樓:shine戚七七

1:a=rand(4,3);

a=[a(1,:),a(2,:);a(3,:),a(4,:)];

2:用reshape函式

b=reshape(a,[m n]);

b=reshape(a,[2 6]);

注意轉換後和轉換前的元素個數要相等也就是2x6要等於3x4

1 矩陣的建立

1.直接輸入法

最簡單的建立矩陣的方法是從鍵盤直接輸入矩陣的元素。具體方法如下:將矩陣的元素用方括號括起來,按 矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號分隔,不同行的元素之間用分號分隔。

2.利用m檔案建立矩陣

對於比較大且比較複雜的矩陣, 可以為它專門建立乙個m檔案。下面通過乙個簡單例子來說明如何利用m檔案建立矩陣。

例2-2 利用m檔案建立mymat矩陣。

(1) 啟動有關編輯程式或matlab文字編輯器,並輸入待建矩陣:

(2) 把輸入的內容以純文字方式存檔(設檔名為mymatrix.m)。

(3) 在matlab命令視窗中輸入mymatrix,即執行該m檔案,就會自動建立乙個名為mymat的矩陣,可供以後使用。

3.利用冒號表示式建立乙個向量

冒號表示式可以產生乙個行向量,一般格式是:

e1:e2:e3

其中e1為初始值,e2為步長,e3為終止值。

在matlab中,還可以用linspace函式產生行向量。其呼叫格式為:

linspace(a,b,n)

其中a和b是生成向量的第乙個和最後乙個元素,n是元素總數。

顯然,linspace(a,b,n)與a:(b-a)/(n-1):b等價。

4.建立大矩陣

大矩陣可由方括號中的小矩陣或向量建立起來。

matlab 如何生成乙個一行n列的行矩陣,矩陣中包含數字1:m

13樓:匿名使用者

這有點麻煩。

主程式clc;clear all

c=generate(3,10);

函式程式

function k=generate(m,n)k=zeros(n,1);

for i=1:n

k(i)=randi([1,m],1);

endk=sort(k);

end示例

c =111

1233

333>>

14樓:傲慢的

x=ceil(rand(1,6)*3); %先生成隨機數向量,ceil是向上取整

sort(x);%再排序

matlab裡如何實現n行一列的矩陣變換成一行n列的矩陣

15樓:匿名使用者

有兩種方

bai法可以實現:

轉置矩陣:du

zhi b = a';

通用方法:reshape()函式

dao示例如回下:

說明:reshape(a,m,n) 表示將矩陣a變換為m行答n列的矩陣,通常用於矩陣形狀的改變,例如下面**將原來的1行4列矩陣轉換為2行2列矩陣:

16樓:用著追她

1、準備乙個需要用於作多維多變數折線圖的「多維多變數樣本資料.xlsx」excel**。

2、然後使用版xlsread讀取所建立權的多維多變數樣本資料**,將將**資料和變數名稱都分別儲存到matlab數值矩陣和細胞矩陣中。

3、然後使用size函式計算多維多變數樣本資料的大小。

4、接下來作多維多變數圖,使用plot函式,每次取一組資料畫出折線圖然後保持,多次迴圈依次把所有折線畫出即可。

5、接下來修改橫座標為多維多變數陣列的變數名稱。

6、繼續為折線圖新增橫座標和縱座標標籤以及標題和顯示網格。

17樓:匿名使用者

正確來說轉置是.'

b=a.';就能把數列轉過來

而單單乙個'是共軛轉置

b=a';轉置數列的同時,虛部去相反數

不過對於實數數列來說,轉置和共軛轉置等價

18樓:匿名使用者

使用轉置函式即可,用法如下:

a=[1 2 3 4 5];

b=a'

注意引號是英文輸入狀態下的單引號,代表轉置運算.

19樓:知道

轉置符 就是英文裡的 單引號 b=a';

matlab中怎麼將乙個m*n矩陣變成乙個m*n維一列的

20樓:蒲公英花開丶

使用reshape(x ,m,n)函式,reshape把指定的矩陣改變形狀,但是元素個數不變。

matlab是美國mathworks公司出專品的商業數學軟屬

件,用於演算法開發、資料視覺化、資料分析以及數值計算的高階技術計算語言和互動式環境,主要包括matlab和simulink兩大部分。

21樓:匿名使用者

使用reshape(x ,m,n)函式

reshape把指bai定的矩du陣改變形狀,但是元zhi素個數不變,dao

例如,行向量:內

a = [1 2 3 4 5 6]

執行下面語句把它變成容3行2列:

b = reshape(a,3,2)

執行結果:

b =1 4

2 53 6若a=[1 2 3

4 5 6

7 8 9]

使用reshpe後想得到b=[1 2 3 4 5 6 7 8 9]只需要將a轉置一下就可以了:

b=reshape(a',1,9)

22樓:匿名使用者

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

a(:)

你執行一下,看是不是你要的形式。

matlab中,建立乙個函式,能生成m行n列的任意數矩陣

23樓:步秀榮賓橋

不用迴圈恐怕不行,因為輸入矩陣a和分塊數x都是一般的。

下面是用到迴圈的語句:

function

mtr=

ufun(a,x)m=

size(a,1);

mtr=

cell(x,1)

fork

=1:x;

mtr=

a(k:x:m,:);end

24樓:司寇果

由於 ubuntu下已經安裝了gcc,因此在compile.m 裡 設定 compiler = 'gcc' ; blas = 'builtin'; 其他地方預設就好。

執行 compile.m ,沒有報錯,等待一段時間之後,全部編譯成功!為了方便使用該軟體包,最好使用set path把build資料夾及其子檔案全部新增到搜尋路徑中,儲存時提示錯誤!

matlab如何將完整的矩陣賦值到另矩陣的一

方法步驟如下 1 首先開啟計算機,在計算機內開啟matlab,並在matlab介面內雙擊工作區的需要更改的矩陣。2 然後在彈出的 中選中需要更改的單個矩陣元素,進行更改即可。3 也可以通過語句來實現對矩陣單個元素的賦值操作。可以通過下面的語句 a 1,2 100,就可以看到我們矩陣的該位置元素數值已...

matlab如何將矩陣中的1逐個替換為

a 2,5 1,4 1,4 3,6 3,6 2,5 假設baia是你想du將1替換為zhi0的矩陣 a a 1 0 可將矩dao陣a中的1全部專替屬換為0 matlab怎麼能隨機的替換矩陣中的數,比如乙個0 1矩陣,把矩陣中的0隨機選幾個替換為1,不是全部替換 a是0 1矩陣 l find a t ...

matlab如何將矩陣中含有字母的元素中的字母用數字代替

將bm寫成function,輸入引數為m,直接呼叫 如何在matlab中實現數字和字母的處於同乙個矩陣中呢?用符號型,或用細胞元。符號型 syms a b c a 1 a 2 b c c 細胞元 a matlab,怎麼將字元 包括數字和字母 的矩陣轉換成數字矩陣,字母a c分別對應10 11 12這...