matlab中向量和矩阵有什么区别?

比如x=[-1 -1 1 2];怎么知道这个输入的是向量还是矩阵?它们的运算法则比如求方差有什么区别吗?

只有一行或者一列数组的是行向量或者列向量。
n*n的是矩阵,1*1的是标量。
向量两个维数中一定有一个为1,而矩阵两个维数都不为1.
在MATLAB中向量和矩阵本质一样,统称为数组。

1. 向量运算和矩阵运算指令形式和实质内涵
向量运算 矩阵运算
指令 含义 指令 含义
A.'非共轭转置 A'共轭转置
A=s把标量s赋给数组A的每个元素
s+B把标量s分别与数组B的每个元素相加 s-B,B-s标量s分别与数组B的元素之差
s.*A标量s分别与数组A的元素之积 s*A标量s分别与矩阵A的元素之积
s./B, B.\s标量s分别被数组B的元素除 s*inv(B)矩阵B的逆乘标量s
A.^n数组A的每个元素的n次方 A^n A为方阵时,矩阵A的n次方
A+B数组对应元素的相加 A+B矩阵相加
A-B数组对应元素的相减 A-B矩阵相减
A.*B数组对应元素的相乘 A*B内维相同矩阵的乘积
A./B A的元素被B的对应元素除 A/B A右除B
B.\A一定与上相同 B\A A左除B(一般与右除不同)
exp(A)以e为底,分别以A的元素为指数,求幂 expm(A) A的矩阵指数函数
log(A) 对A的各元素求对数 logm(A) A的矩阵对数函数
sqrt(A) 对A的积各元素求平方根 sqrtm(A) A的矩阵平方函数
从上面可以看到,向量运算的运算如:乘,除,乘方,转置,要加"点".所以,要特别注意在求"乘,除,乘方,三角和指数函数"时,两种运算有着根本的区别.

2. 向量间的四则运算
在MATLAB中,向量间进行四则运算时,参与运算的向量必须具有相同的维数,加,减,乘,除运算是按元素与元素的方式进行的.其中,数组间的加,减运算与矩阵的加,减运算要同,运算符为:"+","-".但是,向量间的乘,除运算与矩阵间的乘,除运算完全不同,运算符号也有差别,向量间的乘,除运算符为:".*","./"或".\".
(1). 向量按元素相加,减
>>g=[1 2 3 4
5 6 7 8
9 10 11 12]
>> h=[1 1 1 1; 2 2 2 2; 3 3 3 3]
>> g+h % 按元素相加
ans =
2 3 4 5
7 8 9 10
12 13 14 15
>> ans-h % 按元素相减
ans =
1 2 3 4
5 6 7 8
9 10 11 12
>> 2*g-h % 混合运算
ans =
1 3 5 7
8 10 12 14
15 17 19 21
(2). 按元素乘
>> g.*h
ans =
1 2 3 4
10 12 14 16
27 30 33 36
(3). 按元素除
向量间的除法运算符有两个,即左除:"./"和右除:".\",它们之间的关系是:
a./b=b.\a
>> g./h
ans =
1.0000 2.0000 3.0000 4.0000
2.5000 3.0000 4.1000 4.0000
3.0000 3.3333 3.6667 4.0000
>> h.\g
ans =
1.0000 2.0000 3.0000 4.0000
2.5000 3.0000 4.1000 4.0000
3.0000 3.3333 3.6667 4.0000
(4) 幂运算
在MATLAB中,向量的幂运算的运算为:".^",表示每一个元素进行幂运算.
>> g.^2 % 向量g每个元素的平方
ans =
1 4 9 16
25 36 49 64
81 100 121 144
>> g.^(-1) % 向量g的每个元素的倒数
ans =
1.0000 0.5000 0.3333 0.2500
0.2000 0.1667 0.1429 0.1250
0.1111 0.1000 0.0909 0.0833
>> 2.^g % 以g的每个元素为指数对2进行乘方运算
ans =
2 4 8 16
32 64 128 256
512 1024 2048 4096
>> g.^h % 以h的每个元素为指数对g中相应元素进行乘方运算
ans =
1 2 3 4
25 36 49 64
729 1000 1331 1728
>> g.^(h-1)
ans =
1 1 1 1
5 6 7 8
81 100 121 144
(5) 向量的指数,对数和开方运算
在MATLAB中,所谓向量的运算实质是是数组内部每个元素的运算,因此,向量的指数,对数和开方运算与标量的运算规则完全是一样的,运算符函数分别为:exp( ),log( ),sqrt()等.
>> a=[1 3 4;2 6 5;3 2 4];
>> c=exp(a)
c =
2.7183 20.0855 54.5982
7.3891 403.4288 148.4132
20.0855 7.3891 54.5982
>>

3. 矩阵的四则运算
矩阵的四则运算与前面介绍的向量的四则运算基本相同.但也有一些差别.
(1). 矩阵的加减
矩阵的加,减与向量的加,减是完全相同的,运算时要求两矩阵的大小完全相同.
>> a=[1 2; 3 5; 2 6];
>> b=[2 4; 1 8; 9 0];
>> c=a+b
c =
3 6
4 13
11 6
(2). 矩阵的相乘
对于矩阵的乘法,从线性代数中,我们知道,要求进行相乘的两矩阵有相同的公共维.如:
>> a=[1 2; 3 5; 2 6];
>> b=[2 4 1; 8 9 0];
>> c=a*b
c =
18 22 1
46 57 3
52 62 2
设A矩阵为一个阶的矩阵,则要求与之相乘的B矩阵必须是一个阶,得到矩阵是阶的.即,只有当第一个矩阵 (左矩阵) 的列数等于第二个矩阵 (右矩阵) 的行数时,两个矩阵的乘积才有意义.
(3). 矩阵的除法
对于矩阵的除法有两个运算符号,分别为左除符号"\"和右除符号"/".矩阵的右除运算速度要慢一点,而左除运算可以避免奇异矩阵的影响.
对于方程,若此方程为超定的方程,则使用除法可以自动找到使的平方最小化的解.若此方程为不定方程,则使用除法运算符至少求得的解至多有rank(A) (矩阵A的秩)个非零元素,而且求得的解是这种类型的解中范数最小的一个.
>> a=[21 34 20; 5 78 20; 21 14 17; 34 31 38];
>> b=[10 20 30 40]';
>> x=b\a
x =
0.7667 1.1867 0.8767
上面方程是超定方程.要注意的:结果矩阵x是列向量形式.如果,
>> a=[21 34 20 5; 78 20 21 14; 17 34 31 38];
>> b=[10 20 30]';
>> x=b\a
x =
1.6286 1.2571 1.1071 1.0500
上面的方程为不定方程.
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-22
4.1 数组运算和矩阵运算
从外观形状和数据结构来看,二维数组和数学中的矩阵没有区别.但是,矩阵作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则.而数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方面,操作简单,指令形式自然和执行计算有效.所以,在使用MATLAB时,特别要明确搞清数组运算和矩阵运算的区别.表4.1.1列出了两种运算指令形式的实质内涵的异同.
4.1.1 数组运算和矩阵运算指令形式和实质内涵
数组运算
矩阵运算
指令
含义
指令
含义
A.'
非共轭转置
A'
共轭转置
A=s
标量s赋给数组A的每个元素
s+B
把标量s分别与数组B的每个元素相加
s-B, B-s
标量s分别与数组B的元素之差
s.*A
标量s分别与数组A的元素之积
s*A
标量s分别与矩阵A的元素之积
s./B, B.\s
标量s分别被数组B的元素除
s*inv(B)
矩阵B的逆乘标量s
A.^n
数组A的每个元素的n次方
A^n
A为方阵时,矩阵A的n次方
A+B
数组对应元素的相加
A+B
矩阵相加
A-B
数组对应元素的相减
A-B
矩阵相减
A.*B
数组对应元素的相乘
A*B
内维相同矩阵的乘积
A./B
A的元素被B的对应元素除
A/B
A右除B
B.\A
一定与上相同
B\A
A左除B(一般与右除不同)
exp(A)
以e为底,分别以A的元素为指数,求幂
expm(A)
A的矩阵指数函数
log(A)
对A的各元素求对数
logm(A)
A的矩阵对数函数
sqrt(A)
对A的积各元素求平方根
sqrtm(A)
第2个回答  2013-01-28
向量和矩阵还是好区别的吧
size(x)不就知道了,向量有一个维数是1,矩阵2个维数都不是1
说的是2维的情况。
第3个回答  2013-01-29
只有一行的是行向量,只有一列的是列向量,n*n的是矩阵,1*1的是标量。本回答被提问者采纳