matlab 向量夹角,循环和向量的计算量

用MATLAB--连续时间系统的时域和频域分析_武汉刘为_天涯博客
武汉刘为广交天下朋友,共同学习,共同进步,武汉刘为与你同在,欢乐一家!
今日访问:
总访问量:
开博时间:
博客排名:第49339位
(78)(35)(11)(3)(8)(3)(2)(5)(9)(2)
(1)(5)(16)(23)(33)
  实验一 连续时间系统的时域和频域分析    相关MATLAB函数  1. 设描述连续时间系统的微分方程为:     则可用向量 和 表示该系统,即        注意,向量 和 的元素一定要以微分方程时间求导的降幂次序排列,且缺项要用0补齐。如微分方程     表示该系统的向量为        (1)求解冲激响应:impulse()函数  impulse()函数有以下四种调用格式:  ① impulse(b,a)  
该调用格式以默认方式绘制由向量 和 定义的连续时间系统的冲激响应的时域波形。  ② impulse(b,a,t)  该调用格式绘制由向量 和 定义的连续时间系统在 时间范围内的冲激响应的时域波形。  ③ impulse(b,a, t1:p:t2)  该调用格式绘制由向量 和 定义的连续时间系统在 时间范围内,且以时间间隔 均匀抽样的冲激响应的时域波形。  ④ y=impulse(b,a,t1:p:t2)  该调用格式并不绘制系统冲激响应的波形,而是求出由向量 和 定义的连续时间系统在 时间范围内以时间间隔 均匀抽样的系统冲激响应的数值解。  (2)求解阶跃响应:step()函数  step()函数也有四种调用格式:  ① step(b,a)  ② step(b,a,t)  ③ step(b,a, t1:p:t2)  ④ y=step(b,a,t1:p:t2)  上述调用格式的功能与impulse()函数完全相同。  (3)求解零状态响应:lsim()函数  lsim()函数有以下二种调用格式:  ① lsim(b,a,x,t)  在该调用格式中, 和 是描述系统的两个行向量, 表示输入信号时间范围的向量, 则是输入信号在向量 定义的时间点上的取样值。  ② y=lsim(b,a,x,t)  该调用格式并不绘制系统的零状态响应曲线,而是求出与向量 定义的时间间隔相一致的系统零状态响应的数值解。    2. 设系统的频率响应为           求解频率响应:freqs()函数  (1)h=freqs(b,a,w)  
该调用格式中,w为形如w1:p:w2的冒号运算定义的系统频率响应的频率范围,w1为起始频率,w2为终止频率,p为频率取样间隔。向量h返回在向量w所定义的频率点上系统频响的样值。  (2)[h,w]=freqs(b,a)  该调用格式将计算默认频率范围内200个频率点的系统频率响应的样值,并赋值给返回变量h,200个频率点记录在w中。  (3)[h,w]=freqs(b,a,n)  该调用格式将计算默认频率范围内n个频率点的系统频率响应的样值,并赋值给返回变量h,n个频率点记录在w中。  (4)freqs(b,a)  该调用格式并不返回系统频率响应的样值,而是以对数坐标的方式绘制系统的幅频响应和相频响应。  分类: |matlab向量运算_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
相关文辑推荐
共10个文档
格式 文档名称 用户评分 浏览量 下载量查看: 2374|回复: 7
请教,for循环和向量化计算速度的比较
小弟运行了一下《精通matlab与C/C++混合程序设计》(第二版)的一个比较for循环和向量化计算速度的程序(略微改动了一下),如下:
%testfor.m
%清空workspace的变量
%MATLAB循环语句与向量运算的测试语句。
sum_axb1=0 ;
tic,%计时开始
&&sum_axb1= sum_axb1+ a(i)*b(i);
time1=%计时结束并输出采用循环语句进行运算的时间
%sum_axb2=0;
tic,%计时开始
sum_axb2=sum(a.*b);
time2=%计时结束并输出采用向量运算消耗的时间
result1= strcat('采用循环语句运算消耗的时间为:',num2str(time1),'秒');
result2= strcat('采用向量运算消耗的时间为:',num2str(time2),'秒');
disp(result1);
disp(result2);
结果发现,for循环和向量化计算速相比,for循环更快。
采用循环语句运算消耗的时间为:0.076929秒
采用向量运算消耗的时间为:0.12609秒
运行n次基本都是这样,小弟真不明白这是为什么?
[ 本帖最后由 xuruilong100 于
13:34 编辑 ]
这个遇到我算是碰对人了。出现这个情况,我敢肯定,你用的电脑是单核的cpu或者至多是双核cpu,向量计算,走的是并行,而for是串行。在只能用一两个线程情况下,向量需要寻址,所以,for比它要快了。如果不信,在4核以上cpu上运行,你就会发现,for 要慢了。 核越多,差距越大!
[ 本帖最后由 xyb222 于
14:36 编辑 ]
采用循环语句运算消耗的时间为:0.092158秒
采用向量运算消耗的时间为:0.13815秒
&& 我这里也是这样
哈,你们的机子out了。
不过,就这个问题来说,关键不在于机子的问题,而是理解的问题。
说个故事,如你要从甲地到乙地,什么是最快捷的?有人告诉你,飞机是最快的,但你一定明白,这并不是绝对的真理。如果甲地到乙地只有10公里,那么,开摩托应当是最快的,如果甲地到乙地只有100米,那么,跑步会是最快的,如果甲地到乙地只有2米,什么是最快的呢?
答案是:摔一跤,立即到达。:lol :lol
显然,具体问题需要具体处理,就楼主提的这个例子而言,是因为向量寻址的时间占的比例过大,又无法工作在多路并行状态,所以,落后于for,但这并不表示用向量的方法不好。在绝大部分情况下,向量计算的效率要优于for。
回复 4# xyb222 的帖子
首先谢谢你的指教,我的cpu是英特尔 Core i5 M 460 @ 2.53GHz 双核笔记本处理器,个人感觉还不错。是不是用i7(或以上)向量计算才比for循环快?
回复hd71771
你的cpu怎么样?
原帖由 xuruilong100 于
16:57 发表
首先谢谢你的指教,我的cpu是英特尔 Core i5 M 460 @ 2.53GHz 双核笔记本处理器,个人感觉还不错。是不是用i7(或以上)向量计算才比for循环快?
你没看明白这位兄弟说的理由.循环和向量化运算到底哪个快,并不完全取决于你的硬件,还跟你具体需要解决的问题有关.
学习了,谢谢
Powered by查看: 2216|回复: 10
怎么样从键盘连续输入几个数,建立一个向量
怎么样,从键盘连续输入几个数,建立一个向量?for循环是不是有点麻烦。如果预先不知道要输入几个数怎么办?
input可以输入向量的
kaaaf123 发表于
input可以输入向量的
怎么输入?
halfapple 发表于
怎么输入?
&& a = input('Vector a:')
Vector a:[1 2 7 4]
& &&&1& &&&2& &&&7& &&&4
kaaaf123 发表于
&& a = input('Vector a:')
Vector a:[1 2 7 4]
在输入的时候不用[],直接输入数字,要怎么样
halfapple 发表于
在输入的时候不用[],直接输入数字,要怎么样
str2num(input('a:','s'))
kaaaf123 发表于
str2num(input('a:','s'))
谢谢:。。。。。。。。。
:lol不错~~正好用到
再提供一个直接输入得到数值向量的方法:
&& a = input('input a vector:')
input a vector:[1 2 3 4 5]
& &&&1& &&&2& &&&3& &&&4& &&&5
&& a = input('input a vector:')
input a vector:rand(3,1)
& & 0.7513
& & 0.2551
& & 0.5060
&& a = input('input a vector:')
input a vector:[0:2:10].'
Powered byMATLAB数值计算功能(向量、矩阵、数组、稀疏矩阵)矩阵,向量,数组,稀疏..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
MATLAB数值计算功能(向量、矩阵、数组、稀疏矩阵)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 matlab 向量夹角 的文章

 

随机推荐