关于matlab怎么用的问题

问关于matlab2014a安装libsvm出错的问题
为什么静态库名称为libFun.a但是makefile文件中写成 cc -c -g -L$(HOME)/lib
-lF 而不写成XXXX
-llibF;还有若静态库名变成abcFun,那makefile中 -lFun将怎么改写?
我也遇到了这个问题,可能是VC版本太低导致
http://blog.csdn.net/buaasuozi/article/details/你可以参考这位博主写的关于matlab,char的问题_百度知道
关于matlab,char的问题
char()是返回字符串结果吧?比如char(2+x)返回值是2+x1、那么char('2+x')应该返回'2+x'吧?可是返回依然是2+x,这是为什么?2、为什么char(2)返回值是空集??多谢!...
char()是返回字符串结果吧?比如char(2+x)返回值是2+x1、那么char('2+x')应该返回 '2+x' 吧?可是返回依然是2+x,这是为什么?2、为什么char(2)返回值是空集??多谢!
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
实际上这是强制转换,是把值和ASIIC码对应起来,2+X本身就是字符,不需要改,2是数值,在ASIIC中无对应值,不会改,返回空
获赞数:33
char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,但char在标准中是unsigned,编译器可以实现为带符号的,也可以实现为不带符号的,有些编译器如pSOS的编译器,还可以通过编译开关来指定它是有符号数还是无符号数
本回答被网友采纳
我是谁1010147
我是谁1010147
获赞数:15
2不是字符串啊
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。找不到答案?
关于MATLAB的问题
大四开始做毕业设计,不过大学期间没有使用过MATLAB。
指导老师暂时只要我自己用MATLAB完成一个简单的傅里叶变换的代码(是不是图像处理方面未知)。
请教大佬用通俗的话讲一下,这大概是需要完成一个什么样的功能,然后有没有什么简单的源代码接来参考一下咯。
按投票排序
按时间排序
<dd id="vote_num_
一、快速傅里叶介绍
傅立叶原理表明:任何连续测量的时序或信号,都可以表示为不同频率的余弦(或正弦)波信号的无限叠加。FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。那其在实际应用中,有哪些用途呢。
1.有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征(频率,幅值,初相位);
2.FFT可以将一个信号的频谱提取出来,进行频谱分析,为后续滤波准备;
3.通过对一个系统的输入信号和输出信号进行快速傅里叶变换后,两者进行对比,对系统可以有一个初步认识。
假设采样频率Fs,信号频率F,信号长度L,采样点数N。那么FFT之后结果就是一个为N点的复数。每一个点就对应着一个频率点。这个点的模值,就是该频率值下的幅度特性。
具体跟原始信号的幅度有什么关系呢。
1. 假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍,而第一个点就是直流分量(即0Hz),它的模值是直流分量的N倍;
2. 每个点的相位呢,就是在该频率下的信号的相位。第一个点表示直流分量,它的相位是该频率的初相位,matlab以cos为底的,若信号时正弦形式sin(t),则变成cos(t-pi/2)即可。
采样频率Fs,被N-1个点平均分成N等份,每个点的频率依次增加。为了方便进行FFT运算,通常N取大于信号长度L的2的整数次方。
例如某点n所表示的频率为:Fn=(n-1)*Fs/N。由上面的公式可以看出,Fn所能分辨到频率为为Fs/N。如果采样频率Fs为1024Hz,采样点数为1024点,则可以分辨到1Hz。
1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒时间的信号并做FFT,则结果可以分析到1Hz。如果采样2秒时间的信号,则N为2048,并做FFT,则结果可以分析到0.5Hz。
如果要提高频率分辨力,则必须增加采样点数,也即采样时间。频率分辨率和采样时间是倒数关系。
假设FFT之后某点n用复数a+bi表示,该复数的模就是An=sqrt(a*a+b*b),相位就是Pn=atan2(b,a)。根据以上的结果,就可以计算出n点(n≠1,且n&=N/2)对应的信号的表达式为:An/(N/2)*cos(2*pi*Fn*t+Pn),即2*An/N*cos(2*pi*Fn*t+Pn);对于n=1点的信号,是直流分量,幅度即为A1/N。
由于FFT结果的对称性,通常我们只使用前半部分的结果,即小于采样频率一半的结果。
假设我们有一个信号,它含有5V的直流分量,频率为50Hz、相位为-30度、幅度为7V的交流信号以及一个频率为90Hz、相位为90度、幅度为3V的交流信号。数学表达式为:
x = 5 + 7*cos(2*pi*15*t - 30*pi/180) + 3*cos(2*pi*40*t - 90*pi/180)。
我们以128Hz的采样率对这个信号进行采样,总共采样256点。按照我们上面的分析,Fn=(n-1)*Fs/N,我们可以知道,每两个点之间的间距就是0.5Hz。我们的信号有3个频率:0Hz、15Hz、40Hz
出于编程方便,因为直流分量的幅值A1/N,其他点幅值为An/(N/2),故直流分量最后要除以2才是对的。
一般FFT所用数据点数N与原含有信号数据点数L相同,这样的频谱图具有较高的质量,可减小因补零或截断而产生的影响。
三、Matlab代码
Fs = 128; % 采样频率
T = 1/Fs; % 采样时间
L = 256; % 信号长度
t = (0:L-1)*T; % 时间
x = 5 + 7*cos(2*pi*15*t - 30*pi/180) + 3*cos(2*pi*40*t - 90*pi/180); %cos为底原始信号
y = x + randn(size(t)); %添加噪声
title('加噪声的信号')
xlabel('时间(s)')
快速傅里叶变换之Matlab
N = 2^nextpow2(L); %采样点数,采样点数越大,分辨的频率越精确,N&=L,超出的部分信号补为0
Y = fft(y,N)/N*2; %除以N乘以2才是真实幅值,N越大,幅值精度越高
f = Fs/N*(0:1:N-1); %频率
A = abs(Y); %幅值
P = angle(Y); %相值
subplot(211);plot(f(1:N/2),A(1:N/2)); %函数fft返回值的数据结构具有对称性,因此我们只取前一半
title('幅值频谱')
xlabel('频率(Hz)')
ylabel('幅值')
subplot(212);plot(f(1:N/2),P(1:N/2));
title('相位谱频')
xlabel('频率(Hz)')
ylabel('相位')
快速傅里叶变换之Matlab
原始信号中x = 5 + 7*cos(2*pi*15*t - 30*pi/180) + 3*cos(2*pi*40*t - 90*pi/180);
可以看到,幅值频谱中15Hz(与数学表达式中的15Hz对应),幅值7.063(与7对应),相位频谱中初相位-0.5072(与-30*pi/180对应)
幅值频谱中40Hz(与数学表达式中的40Hz对应),幅值3.082(与3对应),相位频谱中初相位-1.57(与-90*pi/180对应)
下面验证Matlab中快速傅里叶变换是以cos为底的。
1.原始信号换为:x = 5 + 7*sin(2*pi*15*t - 30*pi/180) + 3*sin(2*pi*40*t - 90*pi/180); %sin为底的原始信号
快速傅里叶变换之Matlab
幅值频谱明显对应正确,只需验证相位频谱。由于sin(t + p1)=cos(t + p1 - pi/2),故
-30*pi/180 - pi/2 = -2.0944,这与相位频谱中-2.093对应
-90*pi/180 - pi/2 = -3.1416,这与相位频谱中-3.057对应
若想提高结果的精度,可以提高信号长度L和采样点数N。
2.原始信号若为x = 5 + 7*cos(2*pi*15*t - 30*pi/180) + 3*sin(2*pi*40*t - 90*pi/180); %sin和cos为底的原始信号
同样验证正确。
登录后可回答问题,请
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
RDS是一种稳定可靠、可弹性伸缩的在线数据库服务。支持MySQL、SQL Server、PostgreSQL、高...找不到答案?
您好,急求关于matlab与STK互联问题!
我是matlab2011a与stk9。按照您说的:
1、确保matlab是32位的
2、在“安装路径\AGI\STK 9\bin”下找到"StkMatlabInstall.exe"双击
3、在Matlab command window里输入 agiInit('setup') ,接下来 一步步设置。
在安装StkMatlabInstall.exe文件时,没有任何安装结束的提示么?一点反应都没有。然后就是在matlab设置中,会蹦出agiInit at 603错误,Error using AgMexUtil,什么情况?十分感谢!
按投票排序
按时间排序
<dd id="vote_num_
我的stk版本是9.2.1,matlab是2011a32位,一定要先安装matlab再安装stk,这样子好想不会报错了,系统是Win8.1,运行stk的时候使用win7兼容运行。运行StkMatlabInstall.exe时会弹出Update Matlab的对话框选项的,估计如果你的电脑安装了多个matlab版本时选择用的吧,因为在agiInit中有这样的代码:(希望有帮助)
% check for proper MEX file names
if (exist('agiMexInstallInfo') ~= 3)
msg = 'agiInit can not be run with this version of Matlab. You must install DLL versions of AGI MEX files using StkMatlabInstall.exe from the STK binary folder.';
if (~verLessThan('matlab', '7.1'))
msg = 'AGI Matlab Interface Installation is corrupt, please rerun StkMatlabInstall.exe from the STK binary folder.';
error(msg);
<dd id="vote_num_
你好,我碰到了和你一样的问题,请问现在找到什么好的解决方法了吗
<dd id="vote_num_
你好,这个问题我没遇到过。
抱歉不能帮到你。
<dd id="vote_num_
同样问题,请问解决了吗,感谢
登录后可回答问题,请
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
RDS是一种稳定可靠、可弹性伸缩的在线数据库服务。支持MySQL、SQL Server、PostgreSQL、高...后使用快捷导航没有帐号?
只需一步, 快速开始
只需一步,快速开始
查看: 1679|回复: 10
关于Matlab插值的问题
在线时间 小时
登录后查看更多精彩内容~
才可以下载或查看,没有帐号?
最近使用matlab进行插值,主要希望实现不同分辨率数据的转化,问题如下:
原始数据如下:LonData:经度(范围:125-145°E);LatData:纬度(范围:15-24°N);分辨率为1′*1′
插值为分辨率为0.25°*0.25°
相关程序如下:
[X,Y]= meshgrid(LonData,LatData);
XI=(125.00:0.25:145);
YI=(15:0.25:24);
[XXI,YYI]=meshgrid(XI,YI);
ZZ= griddata(X,Y,Z,XXI,YYI,'natural');
此外,还实验了下面两种插值方式:
M=X(:);N=Y(:);
F=TriScatteredInterp(M,N,Z(:),'natural');
vq=F(XXI,YYI)
ZZ = interp2(X,Y,Z,XI,YI);
均出现一个问题,第一列数据为Nan
捕获.PNG (34.51 KB, 下载次数: 0)
10:59 上传
原始数据图像:& && && && && && && && && && && && && && && && && &
1.jpg (143.08 KB, 下载次数: 0)
11:01 上传
插值结果:
2.jpg (101.17 KB, 下载次数: 0)
11:01 上传
插值数据的范围也没有超出原始数据范围,请问如何解决这个空置的问题?(不删除)
密码修改失败请联系qq:
在线时间 小时
一同关注下
密码修改失败请联系qq:
在线时间 小时
密码修改失败请联系qq:
在线时间 小时
估计就是不能由插值得到的点,用外推吧,查一下matlab的外推公式。
密码修改失败请联系qq:
在线时间 小时
估计就是不能由插值得到的点,用外推吧,查一下matlab的外推公式。
非常感谢!
密码修改失败请联系qq:
在线时间 小时
尝试一下,很好的建议
密码修改失败请联系qq:
在线时间 小时
学习关注一下
密码修改失败请联系qq:
在线时间 小时
密码修改失败请联系qq:
在线时间 小时
刚刚开始了解插值问题,好多都不懂,学习一下
密码修改失败请联系qq:
在线时间 小时
我也是刚刚接触插值,最近在做这方面的工作,来学习学习
密码修改失败请联系qq:

我要回帖

更多关于 matlab解决物理问题 的文章

 

随机推荐