matlab創造矩陣
1. MATLAB怎麼創建這樣的矩陣
1、向量的創建
1)直接輸入:
行向量:a=[1,2,3,4,5]
列向量:a=[1;2;3;4;5]
2)用「:」生成向量
a=J:K 生成的行向量是a=[J,J+1,…,K]
a=J:D:K 生成行向量a=[J,J+D,…,J+m*D],m=fix((K-J)/D)
3)函數linspace 用來生成數據按等差形式排列的行向量
x=linspace(X1,X2):在X1和X2間生成100個線性分布的數據,相鄰的兩個數據的差保持不變。構成等差數列。
x=linspace(X1,X2,n): 在X1和X2間生成n個線性分布的數據,相鄰的兩個數據的差保持不變。構成等差數列。
4)函數logspace用來生成等比形式排列的行向量
X=logspace(x1,x2) 在x1和x2之間生成50個對數等分數據的行向量。構成等比數列,數列的第一項x(1)=10x1,x(50)=10x2
X=logspace(x1,x2,n) 在x1和x2之間生成n個對數等分數據的行向量。構成等比數列,數列的第一項x(1)=10x1,x(n)=10x2
註:向量的的轉置:x=(0,5)』
2、矩陣的創建
1)直接輸入:
將數據括在[]中,同一行的元素用空格或逗號隔開,每一行可以用回車或是分號結束。
如:a=[1,2,3;3,4,5],運行後:
a =
1 2 3
3 4 5
2)函數eye,生成單位矩陣
eye(n) :生成n*n階單位E
eye(m,n):生成m*n的矩陣E,對角線元素為1,其他為0
eye(size(A)):生成一個矩陣A大小相同的單位矩陣
eye(m,n,classname):對角線上生成的元素是1,數據類型用classname指定。其數據類型可以是:oble、single、int8、uint8、int16、uint16、int32、uint32 。
3)函數ones 用ones生成全1的矩陣
ones(n) : 生成n*n的全1矩陣
ones(m,n) : 生成m*n的全1矩陣
ones(size(A)) : 生成與矩陣A大小相同的全1矩陣
ones(m,n,p,…)生成m*n*p*….的全1的多維矩陣
ones(m,n,…,classname)制定數據類型為classname
4)函數zeros 函數zeros生成全0矩陣
zeros(n):生成n*n的全0矩陣
zeros(m,n:)生成m*n的全0矩陣
zeros(size(A)): 生成與矩陣A大小相同的全0矩陣
zeros (m,n,p,…)生成m*n*p*….的全0的多維矩陣
zeros (m,n,…,classname)指定數據類型為classname
5)函數rand 函數rand用來生成[0,1]之間均勻分布的隨機函數,其調用格式是:
Y=rand:生成一個隨機數
Y=rand(n):生成n*n的隨機矩陣
Y=rand(m,n):生成m*n的隨機矩陣
Y=rand(size(A)):生成與矩陣A大小相同的隨機矩陣
Y=rand(m,n,p,…):生成m*n*p*…的隨機數多維數組
6)函數randn 函數rand用來生成服從正態分布的隨機函數,其調用格式是:
Y=randn:生成一個服從標准正態分布的隨機數
Y=randn(n):生成n*n的服從標准正態分布的隨機矩陣
Y=randn(m,n):生成m*n的服從標准正態分布的隨機矩陣
Y=randn(size(A)):生成與矩陣A大小相同的服從標准正態分布的隨機矩陣
Y=randn(m,n,p,…):生成m*n*p*…的服從標准正態分布的隨機數多維數組
2. 在matlab中建立一個4*5、零矩陣、單位矩陣、元素全為1的矩陣
零陣是zeros,單位陣是eye,不是eyes,ones全為一矩陣,我用的是09版的,是這樣的
3. Matlab 如何向矩陣中插入另一個矩陣及創建一個矩陣
有兩種方法完成問題的要求:
1.直接對A矩陣進行部分的賦值,使得A中某一部分的值和內矩容陣B相同
A=zeros(10,10);%矩陣A
B=ones(5,5);%矩陣B
A(1:5,1:5)=B;%
2.按照B矩陣的大小,新建A矩陣,將其部分等於B的值
B=ones(5,5);%B矩陣
[m,n]=size(B);
A=zeros(2*m,2*n);
A(1:m,1:n)=B;
A(1+m:end,1+n:end)=B;
4. matlab中怎麼取一個矩陣的一部分
1、打開matlab,在命令行窗口中輸入a=[1 2 3 4;4 5 6 7;1 2 3 4],按回車鍵創建一個3行4列的矩陣。
5. matlab中怎麼創建矩陣的數組,就是數組的元素是矩陣
可以使用元胞數組,如下面的例子:
clear all
clc
a=1:5;%a,b為一維數組
b=2:4;
c=cell(1,2);%c為元胞數組
c{1,1}=a;%a為c中的第一個元素
c{1,2}=b;
6. matlab中,如何快速建立一個行或列矩陣。例如,現在要創立一個只有一行的矩陣,且矩陣中的元素全為1或者2
matlab創建矩陣是非常容易的,尤其是特殊矩陣
比如 全零陣
函數 zeros
B = zeros(m,n) %生成內m×n全零陣
命令 單位容陣
函數 eye
格式 Y = eye(m,n) %生成m×n單位陣
命令 全1陣
函數 ones
格式 Y = ones(m,n) %生成m×n全1陣
等等
比如你的一個只有一行的矩陣,且矩陣中的元素全為1或者2
a=ones(1,10);
b=2*ones(1,10);
要創建10個這樣的矩陣,矩陣中元素是1-10:
for i=1:10
a(i,:)=ceil(10*rand(1,10));
end
7. 請問:怎樣用matlab生成一個指定要求的矩陣
% 方法雖然笨了一點,但是能夠解決您的問題
v=1:10;
binMat = perms(v); % 生成1到10的全排列
binMat(binMat<4)=1; % 小於4 的賦值為1
binMat(binMat>=4)=0; % 大於回等於4 的賦值為0
result = unique(binMat,'rows') % 保留答binMat中唯一的行向量,即為所求
% 最終結果為120*10的一個0-1矩陣
8. 怎樣用matlab創建矩陣
A={'a'; 'b'};
B=[1 2; 3 4];
C=cell(3);
C(2:3,1)=A;
C(1,2:3)=A';
B1=mat2cell(B,[1 1],[1 1]);
C(2:3,2:3)=B1
cellplot(C)
9. matlab二維數組的創建及其變換
1、MATLAB中,一般使用方括弧([]),逗號(,),分號(;)與空格來創建二維內數組。空數組是一種非容常特殊的數組,沒有任何元素。創建一個空數組:只要把一個方括弧復制給一個變數就可以了。
10. matlab中怎麼定義一個5*6的矩陣,矩陣元素全為c
matlab中定義一個5*6的矩陣,矩陣元素全為c;
實現方法如下:a=ones(5,6)*c;
ones產生全1數組內,容zeros產生全零數組。
ones(a,b)產生a行b列全1數組
ones(a)產生a行a列全1數組
例如:
ones(1,3)產生1行3列全1數組[1 1 1]
ones(2)產生 1 1
1 1