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

時間 2021-08-14 13:13:48

1樓:匿名使用者

% 使用 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函式來解決問題

2樓:匿名使用者

為什麼要這樣表示呢?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

3樓:名山之鷹

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

二,所需工具,matlab

三,步驟:

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

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

4樓:真

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

5樓:匿名使用者

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

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

6樓:徐志超

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

a=k(2,:)

7樓:匿名使用者

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

8樓:**神探

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

b = reshape(a, n, m)

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

9樓:羈念

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

for i=1:n

cel=a(:,i);

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

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

10樓:匿名使用者

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

reshape把指復定的矩制陣改變形狀,但是元素個數bai不變,例如,du行向zhi

量:a = [1 2 3 4 5 6]

執行下面語dao句把它變成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)

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

11樓:匿名使用者

有兩種方

bai法可以實現:

轉置矩陣:du

zhi b = a';

通用方法:reshape()函式

dao示例如回下:

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

12樓:用著追她

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

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

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

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

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

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

13樓:匿名使用者

正確來說轉置是.'

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

而單單一個'是共軛轉置

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

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

14樓:匿名使用者

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

a=[1 2 3 4 5];

b=a'

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

15樓:知道

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

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

16樓:匿名使用者

這有點麻煩。

主程式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>>

17樓:傲慢的

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

sort(x);%再排序

matlab 如何生成一個m行n列的隨機矩陣,每一行元素值相同,其值為1、2、3、4?

18樓:匿名使用者

x=round(rand(1,8)*3+1);

u=repmat(x,3,1);

用氣泡排序法將n行m列的二維陣列的每一行按從大到小的順序排序 要求二維陣列的輸入排序和輸出分別用一

陳一根 include define n 30 define m 30 void main int a n m int n,m,x,i,j,t printf n輸入行數n scanf d n printf n輸入列數m scanf d m for i 0 iprintf n第 d行 n i 1 pr...

matlab將矩陣按列的逆序排列為什麼是這樣

是對的,a n 1 1 中第一個 表示的是所有的行,n 1 1表示的是從n列取到第一列,按 1的步長。相當於進行的一個for迴圈 for i n 1 i直到i 1為止 matlab 將矩陣按列的逆序排列為什麼是這樣? 是對的,a n 1 1 中第一個 表示的是所有的行,n 1 1表示的是從n列取到第...

matlab中m檔案怎麼呼叫另m檔案的函式

越亭晚僑汝 將兩個m檔案放在同一目錄,在第一個m檔案裡面直接輸入第二個m檔案的檔名即可 字尾名不要 採用 run函式。這樣的話,就可以將另一個m檔案中的資料匯入到動態儲存中,這樣就可以呼叫變數的值了 matlab中一個m檔案怎麼呼叫另一個m檔案的函式 墨汁諾 按程式,後面的資料將覆蓋前面的資料,可按...