MATLAB如何巧用矩阵运算避免循环

这篇文章将为大家详细讲解有关MATLAB如何巧用矩阵运算避免循环,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

创新互联公司服务项目包括抚顺县网站建设、抚顺县网站制作、抚顺县网页制作以及抚顺县网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,抚顺县网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到抚顺县省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

Untitled

刚刚中午在写作业的时候突然想起来的这个方法,感觉应该有点用,就趁热做了这篇推送来分享一下,哈哈哈。

MATLAB如何巧用矩阵运算避免循环  

呐,就是上图中红框的那道题,要把MATLAB如何巧用矩阵运算避免循环给算出来,这我当时就准备用一个循环来算了,但当时我脑海中突然闪过一道光,然后就冒出来了用矩阵来算一下的念头。哈哈,不过幸好还记得点线性代数上的一些知识,试了一下算出来了。下面先放上代码再简单解释一下。

A1 = 1;
A2 = 0.5;
A3 = 0.2;
A = [A1, A2, A3];

f0 = 5; %Hz

i = [1:3]';

x3 = @(t) A * sin(2*pi*f0* i * t);

fs = 2048; % 采样频率Hz,每秒2048个点
Ts = 1 / fs; % 采样间隔
n = 0 : 2048 - 1; % 2k个点(正好采1s)
t = n .* Ts; % 时间t

plot(t, x3(t))
 

下面这是结果

MATLAB如何巧用矩阵运算避免循环  
可视化x3

现在看一下题中的那个式子,它就是下面这三行相加:
MATLAB如何巧用矩阵运算避免循环
MATLAB如何巧用矩阵运算避免循环
MATLAB如何巧用矩阵运算避免循环
这就能写成
MATLAB如何巧用矩阵运算避免循环
到这还没结束
MATLAB如何巧用矩阵运算避免循环
上面这个矩阵可以写成如下的形式
MATLAB如何巧用矩阵运算避免循环
嘿嘿,所以那个题中的那个和式可以写成如下的形式
MATLAB如何巧用矩阵运算避免循环
这便是程序中的这行了

x3 = @(t) A * sin(2*pi*f0* i * t);
 

注意,A是行向量,i是列向量。到此这个小技巧便说完了,实际上还是数学知识,不算是什么小技巧。艾,这个MarkDown中用latex插入公式简直太好用了,夸一下。


But,要是这个线代中矩阵的乘法都一点也不记得的话,对上面的这个方法没信心,那还是用循环把,如下:

x = 0;
for i = 1 : length(A)
    x = x + A(i).*sin(2*pi*f0*i .*t);

end
sum(x == x3(t)) % 和上面利用矩阵运算的出来的结果对比一下,看看两个算出来的值是否都一样
 

这个在命令行中输出的结果如下

MATLAB如何巧用矩阵运算避免循环  

哈哈,说明这2048个点都一样,说明上面用矩阵运算算出来的结果是对的,自信点,哈哈。

关于“MATLAB如何巧用矩阵运算避免循环”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


分享文章:MATLAB如何巧用矩阵运算避免循环
文章链接:http://ybzwz.com/article/jopohs.html