matlab中怎样计算一个矩阵中每个数的平方?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中怎样计算一个矩阵中每个数的平方?相关的知识,希望对你有一定的参考价值。
使用点运算。如果原矩阵式A,可以使用A.*A或者A.^2
MatLab中点运算是对相同维数的矩阵的对应元素进行相应的运算。
.* 点乘,相同维数的矩阵的对应元素相乘。
.^ 点乘幂,A.^B相同维数的矩阵A元素的B对应元素次幂。A.^n矩阵A中所有元素取n次幂。
.\\ 点左除,相同维数的矩阵的对应元素进行\\运算。
./ 点右除,相同维数的矩阵的对应元素进行/运算。
具体步骤:
一、加和减:
加减法的命令很简单,直接用加或者减号就可以了。如:
c=a+b
d=a-b
二、乘法:
一般乘法:c=a*b,要求a的列数等于b的行数。
如果a,b是一般的向量,如a=[1,2,3] b=[3,4,5]
点积: dot(a,b),
叉积: cross(a,b)
卷积: conv(a,b)
三、除法:一般在解线性方程组时会用到。
x=a\\b 如果ax=b,则 x=a\\b是矩阵方程的解。
x=b/a 如果xa=b, 则x=b/a是矩阵方程的解。
四、转置:
转置时,矩阵的第一行变成第一列,第二行变成第二列,。。。
x=a.'
五、求逆:
要求矩阵为方阵。这在矩阵运算中很常用。
x=inv(a)
参考技术A在Windows下运行应用程序时出现非法操作的提示
此类故障引起原因较多,在如下几钟可能:
(1) 系统文件被更改或损坏,倘若由此引发则打开一些系统自带的程序时就会出现非法操作,(例如,打开控制面板)
(2) 驱动程序未正确安装,此类故障一般表现在显卡驱动程序之止,倘若由此引发,则打开一些游戏程序时就会产生非法操作,有时打开一此网页也会出现这种程况。
(3) 内存质量不好,降低内存速度也可能会解决这个问题。
(4) 软件不兼容,如,IE 5。5在Windows 98 SE 上,当打开多个网页也会产生非法操作。
MATLAB中怎样初始化(创建)二维三维四维以及多维矩阵,各维度的索引顺序是怎样的?
目录
1 在MATLAB中初始化二维矩阵
在MATLAB中初始化一个二维矩阵是很容易的,我们既可以直接把矩阵的元素值写出,比如下面这样:
A = [1 2 3 4;...
5 6 7 8;...
9 10 11 12];
也可以直接用函数ones()、zeros()、rand()等函数初始化一个全1或全0或均匀随机分布等的矩阵,然后再对其中的元素进行访问赋值,比如下面这样:
B = zeros(3,4);
B(1,1)=1;
B(1,2)=2;
B(1,3)=3;
B(1,4)=4;
从上面的示例中我们可以看出,第一个索引代表行,第二个索引代表列。
2 在MATLAB中初始化三维矩阵
我们先试一下可不可以直接用元素值初始化一个三维矩阵。
假设我们要初始化一个两通道、三行、四列的三维矩阵,看下下面这个代码行不行。
C=[[11 12 13 14;15 16 17 18;19 20 21 22];...
[23 24 25 26;27 28 29 30;31 32 33 34]];
运行结果如下:
可见,没有得到我们想要的三维矩阵,这样的写法得到的是两个矩阵合并后的结果。
通常,我们初始化一个三维矩阵,都是用ones()、zeros()等这些函数进行。
比如我们刚才想要得到的两通道、三行、四列的三维矩阵可以像下面这样初始化。
D = zeros(3,4,2);
运行结果如下图所示:
从上面的运行结果可以看出,在MATLAB中,矩阵的维度顺序是:第一个索引为行索引,第二个索引为列索引,第三个索引为通道索引(也称为页索引)。
在Python中,用OpenCV的函数imread()读取的图像数据的维度顺序与其ndarray的常规矩阵的维度顺序是不一样的,详情见:https://blog.csdn.net/wenhao_ir/article/details/124422709
所以这里我们测试下MATLAB的图像处理函数imread()读取到的图像数据的维度顺序是不是第一个索引为行索引,第二个索引为列索引,第三个索引为通道索引。
测试代码如下:
img1 = imread('F:\\material\\images\\P0022-view-06.jpg');
运行结果如下:
从这个运行结果中可以看出,MATLAB的图像处理函数imread()读取到的图像数据的维度顺序与其常规矩阵的维度顺序是一致的,都是“第一个索引为行索引,第二个索引为列索引,第三个索引为通道索引(也称为页索引)”
3 在MATLAB中初始化四维矩阵
这个与三维的方法一样,就是用ones()、zeros()等函数进行,比如下面的语句可创建四维矩阵。
F = zeros(2,3,4,5);
运行结果如下:
从上面的运行结果我们可以看出,维度顺序为:第一个索引代表行,第二个索引代表列,第三个索引代表第三维度,第四个索引代表第四维度。
我们进行赋值操作看是不是这样:
F = zeros(2,3,4,5);
F(1,1,4,5)=5;
运行结果如下:
可见,这个维度索引顺序就是如我们上面所述的,第一个索引代表行,第二个索引代表列,第三个索引代表第三维度,第四个索引代表第四维度。
4 在MATLAB中初始化N维矩阵
都会初始化三维矩阵和四维矩阵了,还不会初始化N维矩阵么?
以上是关于matlab中怎样计算一个矩阵中每个数的平方?的主要内容,如果未能解决你的问题,请参考以下文章