MATLAB 调用函数vb中function函数调用,而每次调用函数里的常数需要变

问题补充&&
本页链接:
函数**的变量是局部变量,函数结束后就不存在了。除非在函数外定义的全局讥丹罐柑忒纺闺尸酣建变量,在函数**变化后,会依然存在。
热心网友&9-20 03:41
猜你感兴趣吧里有没有MATLAB大神,怎么调用函数,一直说我未定义【南京信息工程大学吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:159,800贴子:
吧里有没有MATLAB大神,怎么调用函数,一直说我未定义收藏
急急急!!!!!求大神!!!!
千里马招标网注册成功即可免费查询南京信息工程行业招标信息;每日更新50000条南京信息工程信息,离中标更近一步!
百度一下,你就知道。   ––胭脂泪,相留醉,几时重?自是人生长恨水长东!   
用函数文件名调用
% OFDM_basic.m这是主程序,做ofdm仿真的,调用到函数ber的时候,一直出错clear allNgType=1; % NgType=1/2 for cyclic prefix/zero paddingif NgType==1, nt='CP'; elseif NgType==2, nt='ZP'; endCh=0; % Ch=0/1 for AWGN/multipath channelif Ch==0, chType='AWGN'; Target_neb=100; else chType='CH'; Target_neb=500; endfigure(Ch+1), clfPowerdB=[0 -8 -17 -21 -25]; % Channel tap power profile ’dB’Delay=[0 3 5 6 8]; % Channel delay ’sample’Power=10.^(PowerdB/10); % Channel tap power profile ’linear scale’Ntap=length(PowerdB); % Chanel tap numberLch=Delay(end)+1; % Channel lengthNbps=4; M=2^N % Modulation order=2/4/6 for QPSK/16QAM/64QAMNfft=64; % FFT sizeNg=Nfft/4; % GI (Guard Interval) length (Ng=0 for no GI)Nsym=Nfft+Ng; % Symbol durationNvc=Nfft/4; % Nvc=0: no VC (virtual carrier)Nused=Nfft-NEbN0=[0:5:30]; % EbN0N_iter=1e5; % Number of iterations for each EbN0Nframe=3; % Number of symbols per framesigPow=0; % Signal power initializationfile_name=['OFDM_BER_' chType '_' nt '_' 'GL' num2str(Ng) '.dat'];fid=fopen(file_name, 'w+');norms=[1 sqrt(2) 0 sqrt(10) 0 sqrt(42)]; % BPSK 4-QAM 16-QAMfor i=0:length(EbN0)randn('state',0); rand('state',0);
Ber2=ber(); % BER initialization Neb=0; Ntb=0; % Initialize the number of error/total bitsfor m=1:N_iter% Tx______________________________________________________________X=randint(1,Nused*Nframe,M); % bit: integer vectorXmod= qammod(X,M,0,'gray')/norms(Nbps);if NgType~=2, x_GI=zeros(1,Nframe*Nsym);elseif NgType==2, x_GI= zeros(1,Nframe*Nsym+Ng);% Extend an OFDM symbol by Ng zerosendkk1=[1:Nused/2]; kk2=[Nused/2+1:Nused]; kk3=1:N kk4=1:Nfor k=1:Nframeif Nvc~=0, X_shift= [0 Xmod(kk2) zeros(1,Nvc-1) Xmod(kk1)];else X_shift= [Xmod(kk2) Xmod(kk1)];endx= ifft(X_shift);x_GI(kk4)= guard_interval(Ng,Nfft,NgType,x);kk1=kk1+N kk2= kk2+N kk3=kk3+N kk4=kk4+Nendif Ch==0, y= x_GI; % No channelelse % Multipath fading channelchannel=(randn(1,Ntap)+j*randn(1,Ntap)).*sqrt(Power/2);h=zeros(1,Lch); h(Delay+1)= % cir: channel impulse responsey = conv(x_GI,h);endif i==0 % Only to measure the signal power for adding AWGN noisey1=y(1:Nframe*Nsym); sigPow = sigPow + y1*y1';end% Add AWGN noise________________________________________________snr = EbN0(i)+10*log10(Nbps*(Nused/Nfft)); % SNR vs. Eb/N0 by Eq.(4.28)noise_mag = sqrt((10.^(-snr/10))*sigPow/2);y_GI = y + noise_mag*(randn(size(y))+j*randn(size(y)));% Rx_____________________________________________________________kk1=(NgType==2)*Ng+[1:Nsym]; kk2=1:Nkk3=1:N kk4=Nused/2+Nvc+1:N kk5=(Nvc~=0)+[1:Nused/2];if Ch==1H= fft([h zeros(1,Nfft-Lch)]); % Channel frequency responseH_shift(kk3)= [H(kk4) H(kk5)];endfor k=1:NframeY(kk2)= fft(remove_GI(Ng,Nsym,NgType,y_GI(kk1)));Y_shift=[Y(kk4) Y(kk5)];if Ch==0, Xmod_r(kk3) = Y_else Xmod_r(kk3)=Y_shift./H_ % Equalizer - channel compensationendkk1=kk1+N kk2=kk2+N kk3=kk3+N kk4=kk4+Nkk5=kk5+NendX_r=qamdemod(Xmod_r*norms(Nbps),M,0,'gray');Neb=Neb+sum(sum(de2bi(X_r,Nbps)~=de2bi(X,Nbps)));Ntb=Ntb+Nused*Nframe*N %[Ber,Neb,Ntb]=ber(bit_Rx,bit,Nbps);if Neb&Target_neb, endendif i==0, sigPow= sigPow/Nsym/Nframe/N_elseBer = Neb/Nfprintf('EbN0=%3d[dB], BER=%4d/%8d =%11.3e\n', EbN0(i), Neb,Ntb,Ber)fprintf(fid, '%d\t%11.3e\n', EbN0(i), Ber);if Ber&1e-6, endendendif (fid~=0), fclose(fid); endplot_ber(file_name,Nbps);下面是几个用到的函数,function y=remove_GI(Ng,Lsym,NgType,ofdmSym)if Ng~=0if NgType==1, y=ofdmSym(Ng+1:Lsym); % cyclic prefixelseif NgType==2 % cyclic suffixy=ofdmSym(1:Lsym-Ng)+[ofdmSym(Lsym-Ng+1:Lsym) zeros (1,Lsym-2*Ng)];endelse y=ofdmSendfunction y=Q(x)% co-error function: 1/sqrt(2*pi) * int_x^inf exp(-t^2/2) dt. % Eq.(4.27)y=erfc(x/sqrt(2))/2;function plot_ber(file_name,Nbps)EbN0dB=[0:1:30]; M=2^Nber_AWGN = ber_QAM(EbN0dB,M,'AWGN');ber_Rayleigh = ber_QAM(EbN0dB,M,'Rayleigh');semilogy(EbN0dB,ber_AWGN,'r:'), hold on,semilogy(EbN0dB,ber_Rayleigh,'r-')a= load(file_name); semilogy(a(:,1),a(:,2),'b–s'); grid onlegend('AWGN analytic','Rayleigh fading analytic', 'Simulation');xlabel('EbN0[dB]'), ylabel('BER'); axis([a(1,1) a(end,1) 1e-5 1])function y = guard_interval(Ng,Nfft,NgType,ofdmSym)if NgType==1, y=[ofdmSym(Nfft-Ng+1:Nfft) ofdmSym(1:Nfft)];elseif NgType==2, y=[zeros(1,Ng) ofdmSym(1:Nfft)];endfunction ber=ber_QAM(EbN0dB,M,AWGN_or_Rayleigh)% Find analytical BER of M-ary QAM in AWGN or Rayleigh channel% EbN0dB=EbN0dB: Energy per bit-to-noise power[dB] for AWGN channel% =rdB : Average SNR(2*sigma Eb/N0)[dB] for Rayleigh channel% M = Modulation order (Alphabet or Constellation size)N= length(EbN0dB); sqM= sqrt(M);a= 2*(1-power(sqM,-1))/log2(sqM); b= 6*log2(sqM)/(M-1);if nargin&3, AWGN_or_Rayleigh='AWGN'; endif lower(AWGN_or_Rayleigh(1))=='a'ber = a*Q(sqrt(b*10.^(EbN0dB/10))); % ber=berawgn(EbN0dB,’QAM’,M) Eq.(4.25)else % diversity_order=1; ber=berfading(EbN0dB,’QAM’,M,diversity_order)rn=b*10.^(EbN0dB/10)/2; ber = 0.5*a*(1-sqrt(rn./(rn+1))); % Eq.(4.26)end调用时一直报错,说ber函数或者变量未定义
数字通信,误码比
先把要调用的函数写好保存为m文件
楼上说的对。    ––我报路长嗟日暮,学诗谩有惊人句。 九万里风鹏正举。风休住,蓬舟吹取三山去。
自己做一个函数存起来,直接引用就行了。要不就直接在代码里定义。
信息工程大学通过改变信息系统内部的状态,结构,通过变化破坏了攻击过程依赖的任意环境或数据,从根本上阻止攻击威胁.
昨天晚上看一个学姐写毕业论文貌似看到这个单词了
真羡慕你们这些有故事的人,不像我,一个帅字贯穿了我的一生。。。
登录百度帐号推荐应用博客访问: 986298
博文数量: 219
博客积分: 4013
博客等级: 中校
技术积分: 4010
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: 项目管理
SIMILINK模块库按功能进行分为以下8类子库:(1)Continuous(连续模块)(2)Discrete(离散模块)(3)Function&Tables(函数和平台模块)(4)Math(数学模块)(5)Nonlinear(非线性模块)(6)Signals&Systems(信号和系统模块)(7)Sinks(接收器模块)(8)Sources(输入源模块)连续模块(Continuous)continuous.mdlIntegrator:输入信号积分Derivative:输入信号微分State-Space:线性状态空间系统模型Transfer-Fcn:线性传递函数模型Zero-Pole:以零极点表示的传递函数模型Memory:存储上一时刻的状态值TransportDelay:输入信号延时一个固定时间再输出VariableTransportDelay:输入信号延时一个可变时间再输出离散模块(Discrete)discrete.mdlDiscrete-timeIntegrator:离散时间积分器DiscreteFilter:IIR与FIR滤波器DiscreteState-Space:离散状态空间系统模型DiscreteTransfer-Fcn:离散传递函数模型DiscreteZero-Pole:以零极点表示的离散传递函数模型First-OrderHold:一阶采样和保持器Zero-OrderHold:零阶采样和保持器UnitDelay:一个采样周期的延时函数和平台模块(Function&Tables)function.mdlFcn:用自定义的函数(表达式)进行运算Fcn:利用matlab的现有函数进行运算S-Function:调用自编的S函数的程序进行运算Look-UpTable:建立输入信号的查询表(线性峰值匹配)Look-UpTable(2-D):建立两个输入信号的查询表(线性峰值匹配)数学模块(Math)math.mdlSum:加减运算Product:乘运算DotProduct:点乘运算Gain:比例运算MathFunction:包括指数函数、对数函数、求平方、开根号等常用数学函数TrigonometricFunction:三角函数,包括正弦、余弦、正切等MinMax:最值运算Abs:取绝对值Sign:符号函数LogicalOperator:逻辑运算RelationalOperator:关系运算ComplextoMagnitude-Angle:由复数输入转为幅值和相角输出Magnitude-AngletoComplex:由幅值和相角输入合成复数输出ComplextoReal-Imag:由复数输入转为实部和虚部输出Real-ImagtoComplex:由实部和虚部输入合成复数输出非线性模块(Nonlinear)nonlinear.mdlSaturation:饱和输出,让输出超过某一值时能够饱和。Relay:滞环比较器,限制输出值在某一范围内变化。Switch:开关选择,当第二个输入端大于临界值时,输出由第一个输入端而来,否则输出由第三个输入端而来。ManualSwitch:手动选择开关信号和系统模块(Signal&Systems)sigsys.mdlIn1:输入端。Out1:输出端。Mux:将多个单一输入转化为一个复合输出。Demux:将一个复合输入转化为多个单一输出。Ground:连接到没有连接到的输入端。Terminator:连接到没有连接到的输出端。SubSystem:建立新的封装(Mask)功能模块接收器模块(Sinks)sinks.mdlScope:示波器。XYGraph:显示二维图形。ToWorkspace:将输出写入MATLAB的工作空间。ToFile(.mat):将输出写入数据文件。输入源模块(Sources)sources.mdlConstant:常数信号。Clock:时钟信号。FromWorkspace:来自MATLAB的工作空间。FromFile(.mat):来自数据文件。PulseGenerator:脉冲发生器。RepeatingSequence:重复信号。SignalGenerator:信号发生器,可以产生正弦、方波、锯齿波及随意波。SineWave:正弦波信号。Step:阶跃波信号。中常用的模块库包括以下几种:(1)信宿(Sinks)模块库:包括显示或将输出回写的模块。Display显示输入的值;Output创建子系统的输出端口或外部输出端口;Scope、FloatScope显示仿真时产生的信号;StopSimulation当输入不等于零时停止仿真;Terminator将未连接的输出端口作为终端;XYGraph显示XY坐标图。(2)信源(Sources)模块库:包括产生各种信号的模块。Band-LimitedWhiteNoise为连续系统引入白噪声;ChirpSignal产生一个扫频信号;Clock产生和显示仿真时间;Constant产生一个常量值;DigitalClock在特定的采样间隔产生仿真时间;Ground将未连接的输入端口接地等。(3)连续(Continuous)模块库:包括线性函数模型。包括有微分单元(Derivative)、积分单元(Integrator)、线性状态空间系统单元(State-Space)、线性传递函数单元(TransferFen)、延时单元(TransportDelay)、可变传输延时单元(VariableTransportDelay)、指定零极点输入函数单元(Zero-Pole)。(4)数学操作(SimulinkMathOperations和Fixed-PointBlocketMath)模块库:包含常用的数学函数模块。包括输入信号绝对值单元(Abs),计算一个复位信号幅度与/或相位单元(ComplextoMagnitude-Angle),计算一个复位信号的实部与虚部单元(ComplextoReal-Imag)等数学函数。(5)通信模块库(ComunicationsBlockset)信源(CommSources):在这个库中,可以形成随机或伪随机信号,也可以读取文件或模拟压控振荡器(VCO)来产生非随机信号。BernoulliRandomBinaryGenerator模块:产生伯努利分布的二进制随机数。BinaryVectorNoiseGenerator模块:产生可以控制“1”的个数的二进制随机向量。Random-IntegerGenerator模块:产生范围在(0~M-1)内的随机整数。PoissionIntGenerator模块:产生洎松分布的随机整数。PNSequenceGenerator模块:产生伪随机序列。GaussianNoiseGenerator模块:产生离散高斯白噪声。RayleighNoiseGenerator模块:产生瑞利分布的噪声。UniformNoiseGenerator模块:产生在一个特定区域内的均匀噪声。Voltage-ControlledOscillator模块:实现压控振荡器。信宿(CommSinks):此库中提供了信宿和显示的模块,以使对通信系统的分析更加简便。TriggeredWritetoFile模块:在输入信号上升沿向文件写入数据。EnorRateCalculation模块:计算输入信号的误比特率和误符号率。信源编码(SourceCoding)模块库:信源编码分为两个基本步骤:信源编码和信源译码。信源编码用量化的方法将一个源信号转化成一个数字信号。所得信号的符号都是在某个有限范围内的非负整数。信源译码就是从信源编码的信号恢复出原来的信息。信道(Channel)模块库:提供各种通信信道模型,比如高斯白噪声信道等。错误侦测与校验(EnorDetectionCorrection)模块库:提供用于分析输入输出的模块,比如计算误码率的模块。调制解调(Modulation)模块:分为数字调制解调和模拟调制解调,再细分又可分为幅度调制、相位调制以及频率调制。转自:
阅读(33570) | 评论(0) | 转发(1) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(8723)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'如何在matlab中调用C',
blogAbstract:'
原文出处无法考究,有知道的望告知!
问题:如果我有一个用C语言写的函数,实现了一个功能,如一个简单的函数:double add(double x, double y){return x +} 现在我想要在Matlab中使用它,比如输入:&& a = add(1.1, 2.2)3.3000要得出以上的结果,那应该怎样做呢?MEX文件:解决方法之一是要通过使用MEX文件,MEX文件使得调用C函数和调用Matlab的内置函数一样方便。MEX文件是由原C代',
blogTag:'mex',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:8,
publishTime:7,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 vba调用function函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信