在MATLAB仿真中,为什么老是说Undefinedthis function orr variable 'D'

[转载]LibSVM 在matlab中的使用以及libsvm-mat在MATLAB平台下的安装
已有 2626 次阅读
|个人分类:|系统分类:|文章来源:转载
LibSVM 在matlab中的使用 & & & &&搞了一天,看了很多资料,终于搞好了matlab中调用大牛写好的svm库,将结果告诉大家避免以后走弯路。1. 参考网站:libsvm库下载:视频: (有小问题,等下会提到)详解:2. 操作流程:请注意:详细操作流程请参考上面的“详解”网站,这里只说大框架和详解里没有提到的问题。A.设置pathFile-&set path -&add with subfolders-&加入libsvm-3.11文件夹的路径B. 在matlab中编译目的:将libsvm-3.11matlab 中 libsvmwrite.c 等 C++文件编译成 libsvmread.mexw32 等matlab文件,这样就可以在command window中被直接调用了。注意:在最外面的Readme中有提到已经有编译好的文件,比如在libsvm-3.11windows中也会看到libsvmread.mexw32,但这里不要被误导!还是需要你自己再编译一遍的!(还有如果matlab版本太低,如matlab 7.0是不能用VS作为编译器的,只能用VC++ 6.0,这是我劝你给matlab升级吧!别装vc了~我就是这样,升级到Matlab 2011b就可以用VS2008做编译器了)C.加载数据集就是这里搞了我一下午!加载数据集[cpp]load heart_scale &load heart_scale&有两个数据集,一个是C++的, 一个是matlab的。libsvm库中下载的是C++数据,所以matlab加载我们下载的heart_scale是会报错的:&这就是视频中遗漏的小问题&[cpp]??? Error using ==& load &Number of columns on line 3 of ASCII file D:ZJU projectsmachine learninglibsvm-3.11heart_scale must be the same as previous lines. &??? Error using ==& load
Number of columns on line 3 of ASCII file D:ZJU projectsmachine learninglibsvm-3.11heart_scale must be the same as previous lines.这时怎么办?&法1、下载matlab数据集()法2、用libsvmread而非load,就是这里[cpp]libsvmread('heart_scale'); & libsvmread('heart_scale');这样就可以加载数据集了,完成该步骤后发现Workspace中出现了heart_scale_inst 和 heart_scale_label,说明正确。&ok,下一步我们来测试svm的训练和predictD.train & predict[cpp]model = svmtrain(heart_scale_label,heart_scale_inst); &[predict_label,accuracy] = svmpredict(heart_scale_label,heart_scale_inst,model); &model = svmtrain(heart_scale_label,heart_scale_inst);
[predict_label,accuracy] = svmpredict(heart_scale_label,heart_scale_inst,model);可以看到结果:&[cpp]Accuracy = 86.6667% (234/270) (classification) &Accuracy = 86.6667% (234/270) (classification)=========================MAC 版如何在matlab中使用libsvm=========================下面说下mac怎么用libsvm,这里的问题是mex -setup的问题,需要安装一个补丁。1. mac中安装xcode2. xcode的preference中装command line tools3. 下载最新补丁http://www.mathworks.cn/support/solutions/en/data/1-FR6LXJ/4. 在matlab命令行输入&&cd(matlabroot)5. 在matlab命令行输入这个打补丁&&!unzip -o ~/Downloads/optsPatch_MACOSX8.patch6. 可以运行mex -setup了,选择将原来的gcc覆盖掉7. 到libsvm/matlab进行make就搞定啦!具体参考:http://bbs.weiphone.com/read-htm-tid-5787323.html&就OK了。祝大家成功快速实现!&&安装libsvm-mat是在平台下使用libsvm的前提,如果没有安装好也就无法使用,在MATLAB平台下安装libsvm-mat一般有以下几个大步骤:1. 将libsvm-mat所在工具箱添加到matlab工作搜索目录(File ——》 Set Path… ——》 Add with Subfolders...);2. 选择编译器(mex -setup);3. 编译文件(make)。每一步都很重要【我就不在每一步前面说 这一步很重要了~】,下面我将 掰饽饽说馅【一句东北俚语i.e.翔实详尽】 的给大家详细说明。1. 将libsvm-mat所在文件夹目录添加到MATLAB工作搜索目录(File ——》 Set Path…——》 Add with Subfolders...)这第一步很重要,如果没有将libsvm-mat所在文件夹目录正确的添加到MATLAB工作搜索目录,使用的时候就会出现 ??? Undefined function or variable 'XXX'. 等等报错。首先明晰一下MATLAB工作搜索目录(路径)和当前目录(路径)这两个概念:当前目录[Current Folder]是指MATLAB当前所在的路径,MATLAB菜单栏下面有一个Current Folder可以在这里进行当前所在目录的更改。工作搜索目录(路径)是指当你使用某一个函数的时候,MATLAB可以进行搜索该函数的所有的目录集合。注:当你使用某一个函数的时候,MATLAB首先会从当前目录搜索调用该函数,如果当前目录没有该函数,MATLAB就会从工作搜索目录按照从上到下的顺序进行搜索调用该函数,如果工作搜索目录中也没有该函数,就会给出 ??? Undefined function or variable 'XXX' 这个报错。所以呀,往后如果出现这个报错,您不妨看一下您想调用的函数所在目录是否添加到MATLAB工作搜索目录中了。说了这么多,第一步就是将libsvm-mat所在文件夹复制到某一个地方后,在MATLAB菜单栏中选择 File ——》 Set Path…——》 Add with Subfolders... 然后选择之前存放libsvm-mat的文件夹,然后点击保存就可以了。如果你添加到工作搜索目录这个你还整不明白,可以看看这个帖子:【原创】Matlab如何安装新的工具箱说是第一步其实真正的第一步是打开电脑,囧~然后将libsvm-mat下来,下载地址如下:Libsvm-mat林智仁先生的原始版本下载libsvm-mat-2.91-1.zip【说明:最新的版本为libsvm-mat-3.0-1.zip大家可以在这里下载 最新版本的改动是将SVM的model structure移动到了svm.h里面,对于常规用户没有影响基本和以前的都一样,只是方便一些高级用户自己进行底层代码的修改】Libsvm-mat faruto版本下载libsvm-mat-2.89-3[FarutoUltimate3.0]GUI版本下载【基于libsvm-mat-2.89-3[FarutoUltimate3.0]】[原创]SVM_GUI_2.0[mcode][by_faruto]2. 选择编译器(mex -setup)好多工具箱其实在上面那步之后就算是“安装”成功了,有的小朋友可能会问:“为啥安装libsvm-mat会选神马编译器,干嘛!?”,因为libsvm的原始版本是用c++写的,这里为了能在MATLAB平台下使用,需要用编译器编译一下,生成一个类似于.m文件的东东(. mexw32文件)这样就可以在MATLAB平台下使用libsvm了,所以这里需要在编译之前选择一个编译器告诉MATLAB:“你丫就用这个我刚刚选择的编译器给我把 svmtrain.c && svmpredict.c等等一系列放在make.m中的文件名字给我编译一下。”这第一步也很重要,如果编译器没有选择好的话,下一步进行make编译的时候就会出现如下报错:Unable to complete successfully.这个表示你没有选择好编译器。下面进行编译器的选择,哎,这里就涉及到一个问题,既然是“选择”,那说明你电脑上需要安装了编译器才行,否则选你妹啊,是吧,哎,这就又涉及到一个问题:“神马是编译器?!”,这里俺就不解释了,学过C语言的应该会懂得,不懂的百度去,这里我推荐使用Microsoft Visual C++ 6.0编译器或者更高版本的visual studio,一般MATLAB会自带一个编译器Lcc-win32 C 但这个在这里无法使用!为啥呢?因为libsvm源代码使用c++写的,而Lcc-win32 C是一个c编译器,无法编译c++源代码!【日了,我都想吐了,真的这篇关于libsvm-mat在MATLAB平台下的安装的帖子我说的真的不能再详细了,详细的我都想吐了,要是还有人不明了如何安装libsvm-mat那只能说明:1.我表达能力还是不行或者2.你丫真的太**了,我希望是前者~】下面具体说说如何选择编译器。首先在MATLAB命令窗【Commond Window】中输入:mex -setup复制代码Remark : 注意 mex 后面要打一个 空格 然后 是-setup。 千万别忘记打一个空格,发现好多朋友在mex和-setup之间没有打空格!!会出现类似如下内容:Please choose your compiler for building external interface (MEX) files: Would you like mex to locate installed compilers [y]/n?复制代码这里问你是否locate本机安装的编译器,正规的选择y然后指定编译器即可,我们先来看一下选择y(选择n在后面说),好下面我们选择y。根据你本机安装的编译器,会出现类似如下内容:Please choose your compiler for building external interface (MEX) files: Would you like mex to locate installed compilers [y]/n? ySelect a compiler: [1] Lcc-win32 C 2.4.1 in D:MATLAB~1syslcc [2] Microsoft Visual C++ 6.0 in D:Microsoft Visual Studio [0] None Compiler:复制代码然后你选择相应的编译器并确认即可:Compiler: 2Please verify your choices: Compiler: Microsoft Visual C++ 6.0 Location: D:Microsoft Visual Studio Are these correct [y]/n? yTrying to update options file: C:UsersfarutoAppDataRoamingMATLABR2009bmexopts.bat From template: & & & & & & &D:MATLAB~1binwin32mexoptsmsvc60opts.bat Done . . . 复制代码PS:matlab支持的编译器列表在这里查看:http://www.mathworks.com/support/compilers/current_release/这样就表示编译器选择成功了(此步骤中可能会出现warning警告是正常现象,不用管的说~)。================================================================如果你输入 mex –setup后在Please choose your compiler for building external interface (MEX) files: Would you like mex to locate installed compilers [y]/n?复制代码这一步选择y后,可选择的编译器里面有没你已经安装的编译器,表示MATLAB可能没有识别记录你安装的编译器的名字和目录(有时候会发生这种情况),此时你应该重新输入 mex –setup后选择n手动进行编译器的设置:mex -setupPlease choose your compiler for building external interface (MEX) files: Would you like mex to locate installed compilers [y]/n? nSelect a compiler: [1] Intel C++ 9.1 (with Microsoft Visual C++ 2005 SP1 linker) [2] Intel Visual Fortran 10.1 (with Microsoft Visual C++ 2005 SP1 linker) [3] Lcc-win32 C 2.4.1 [4] Microsoft Visual C++ 6.0 [5] Microsoft Visual C++ .NET 2003 [6] Microsoft Visual C++ 2005 SP1 [7] Microsoft Visual C++ 2008 Express [8] Microsoft Visual C++ 2008 SP1 [9] Open WATCOM C++ [0] None Compiler: 4 &%选择的这个编译器一定是你本机安装了的,否则选择了也没有用Your machine has a Microsoft Visual C++ compiler located at D:Microsoft Visual Studio. Do you want to use this compiler [y]/n?复制代码这样的话就可以手动选择你想要的编译器了,在Your machine has a Microsoft Visual C++ compiler located at D:Microsoft Visual Studio. Do you want to use this compiler [y]/n?复制代码这个确认步骤,如果你的编译器的确是安装在MATLAB给出的这个目录(我这里是D:Microsoft Visual Studio)那么选择y确认即可,如果不是说明MATLAB没有识别出安装的地方,选择n手动指定目录即可,比如选择n后的结果如下:Compiler: 4Your machine has a Microsoft Visual C++ compiler located at D:Microsoft Visual Studio. Do you want to use this compiler [y]/n? nPlease enter the location of your compiler: [C:Program FilesMicrosoft Visual Studio]复制代码此时输入你安装的编译器的完整目录即可比如:D:Microsoft Visual Studio这样编译器的选择就结束了,相应会遇到的问题大概也就是上面这些了。3. 编译文件(make)这一步说白了就是运行一下 libsvm-mat工具箱中的make.m文件。首先需要把MATLAB的当前目录[Current Folder]调整到libsvm-mat所在的文件夹,如果你要问神马是“当前目录”?看第一步中,有关“MATLAB工作搜索目录(路径)和当前目录(路径)这两个概念”的讲解,i.e.当前目录[Current Folder]是指MATLAB当前所在的路径,MATLAB菜单栏下面有一个Current Folder可以在这里进行当前所在目录的更改。工作搜索目录(路径)是指当你使用某一个函数的时候,MATLAB可以进行搜索该函数的所有的目录集合。有人会问:“如何把MATLAB的当前目录[Current Folder]调整到libsvm-mat所在的文件夹?”答曰:先上个图:你点击箭头所指的那三个点,就能选择libsvm-mat所在的目录了,事先将libsvm-mat工具箱放在一个你想要放的位置即可~然后在MATLAB命令窗【Commond Window】输入make复制代码如果成功运行没有报错,到此就说明libsvm-mat工具箱成功安装了。Libsvm-mat工具箱中有自带的heart_scale.mat测试数据集,可以运行以下代码来check一下是否安装成功:load heart_model = svmtrain(heart_scale_label,heart_scale_inst);[predict_label,accuracy] = svmpredict(heart_scale_label,heart_scale_inst,model);复制代码如果出现下面这个结果,则说明肯定安装成功了:Accuracy = 86.6667% (234/270) (classification)复制代码注:编译文件(make)这一步为神马要把MATLAB的当前目录[Current Folder]调整到libsvm-mat所在的文件夹呢?答曰:因为这一步要运行libsvm-mat工具箱中的make.m文件,因为当你使用某一个函数的时候,MATLAB首先会从当前目录搜索调用该函数,为了防止其他位置也有类似名字的make.m函数,所以这一步要把MATLAB的当前目录[Current Folder]调整到libsvm-mat所在的文件夹,优先运行libsvm-mat文件夹下的make.m文件。=========================================================一些额外要说明的注意事项:PS: make.m的文件内容如下:% This make.m is used under Windowsmex -O -c svm.cppmex -O -c svm_model_matlab.cmex -O svmtrain.c svm.obj svm_model_matlab.objmex -O svmpredict.c svm.obj svm_model_matlab.objmex -O libsvmread.cmex -O libsvmwrite.c复制代码哦,对了,安装完libsvm-mat工具箱,有的小朋友想要用 help svmtain 和 help svmpredict来查看这两个函数的帮助文件,非常杯具的告诉你:运行help svmtain 在较新版本下得到的是MATLAB自带的svmtrain函数的帮助文件;运行help svmpredict 会有如下报错svmpredict not found.复制代码因为svmtrain和svmpredict的源代码是svmtrain.c和svmpredict.c即源代码用c++写的,编译后生成的文件是svmtrain.mexw32和svmpredict.mexw3,而.mexw32这个编译后的文件是加密过的,打开是乱码,根本就没有帮助文件解说,想看svmtrain和svmpredict的源代码直接看svmtrain.c和svmpredict.c即可。O(∩_∩)O~也有的小朋友测试过可以在别人电脑上进行编译然后将编译好的libsvm-mat工具箱复制过来,这样在你的本机上只进行第一步就可以安装成功了~这个是可以的,但我个人还是建议在本机也编译一下才好,因为编译的环境不同(32位或者64位或者XX差异)会导致可能使用别人编译的会出现这样那样的小问题~anyway,就是提一下这个事!下几个帖子计划 掰饽饽说馅 的给大家说说如何使用libsvm进行分类如何使用libsvm进行回归如何优化libsvm的各种参数使用libsvm进行分类和回归的通常的流程以及注意事项【这个最有技术含量了,因为总有朋友说用libsvm做分类或者回归效果不好,我说把数据给我试一下,结果我做的效果一般都会比其要好,为啥捏?这里先简单说一点点:使用libsvm(SVM)不是简简单单的用svmtrain输入几个参数 -c -g 生成model后用svmpredict来分类或者回归,其实更重要的是前期的数据预处理和后期的参数选择(归一化范围的选取,降维算法的选取,以及最佳参数选取的算法)这些才是关键,其实说白了如果这些您都搞得很透彻的话,选择其他分类器也能做好,即这些(前期的数据预处理和后期的参数选择)做好了,选择神马分类器真的并不重要,在libsvm-mat-2.89-3[FarutoUltimate3.0]工具箱中我把常见的数据预处理方法(归一化,降维pca)和参数选择算法(grid search 暴力搜索方法,启发式GA、PSO方法)都封装好了方便大家使用,同样是用这个加强工具箱,但对于同一个测试数据集合,我敢保证肯定会有人用的效果就没有我的好,为啥捏?因为知其然不知其所以然!肯定是其仅仅是了解一些表象的使用,而对于底层到底是怎么回事没有搞清楚,这样在具体的参数调整上肯定是不行的,这也回答之前的“为什么总有朋友说用libsvm做分类或者回归效果不好,我说把数据给我试一下,结果我做的效果一般都会比其要好”的原因。】如何可视化libsvm的分类结果【虚幻的浮云~】如何处理unbalanced label(不平衡数据标签)问题【难点问题】反正 我SVM 就会这么一点东西,早点说完早拉到~PPS:这篇帖子我编辑了一天,用word整理出来大概是5-6页,在此下个狠点的咒怨:谁TM要是转载这个帖子不给出原始链接,不给出faruto作者名,我TM咒你做分类准确率全为0,做回归mse巨大,平方相关系数巨小,各种考试全挂,毕业论文答辩通不过!更多关于SVM的东西请看:关于SVM的那点破事[长期更新整理 by faruto]&&matlab xcode 与 libsvm 的设置方法mac的系统还是太小众了,碰到问题搜索了很多资料,再加上自记得摸索才得到解决的办法科研需要用到matlab的c编译器,在moumntain lion下面如果要用到libsvm等需要编译才可以使用的工具包,则必须为matlab指定一个编译器mac下xcode带有一个 llvm-gcc编译器,但是配置起来还是要一番功夫的,首先国内网站的所有帖子几乎都不适于现在的mountain lion和xcode4.5.2但是matlab必须打一个补丁才能兼容xcode,官方指南matlab官方解决方案的但是这个方案其实依赖一个xcode command line tools,一直以来国内外的一些帖子没有成功配置好都是因为没有安装这个command line tools尤其是一个帖子提到了需要用到root权限,sudo启动matlab 之后打相应的补丁,这个方法真的害死我了,如果用sudo打开matlab,打好补丁之后 以后每次启动都必须sudo才可以 否则就启动出错,删了重装也无法解决,后来参考一个帖子重设权限才可正常启动所以千万别按他的方法搞。。。还有一些朋友的帖子说打好补丁后“用mex -setup的时候如果可以看到Template Options file for building llvm-gcc MEX-files字样的话就是成功了,如果没看到llvm-gcc的话就是悲剧了,其实这个不对的,我打好补丁mex -setup并没有显示llvm-gcc的(如果打最后那个补丁Xcode4_OLD.patch就有llvm字样,打mountain lion也就是optsPatch_MACOSX8.patch是没有这个字样的只有Template Options file for building gcc MEX-files)其实关键的关键就是要一定要安装xcode的command line tools才可以编译成功说了这么多 我还是具体说一下正确的步骤把:1 安装好matlab (我是装得2012b,其他版本也都差不多)2 安装xcode,我是直接用mac store装的 xcode免费的,但是比较大1个半G,store下载特别慢所以推荐晚上装,早上就差不多装好了。3 安装xcode的command line tools这一步很关键 官方指南没有提,但是一定做 否则不会成功编译的方法是打开xcode,我是随便建立一个项目,其实只要打开xcode,最上面的菜单栏显示出来了 就可以了点击菜单的xcode-&perference 回弹出一个窗口,点击downloads那个按钮 就能看到command line tools的下载按钮了,安装它(大概还要1小时多。。。)安装好 command line tools就可一进行下一步了4 到官方网站
下载最新的补丁(些此文时是optsPatch_MACOSX8.patch)5按照指南的指示进入matlab根目录命令是 cd(matlabroot)打好补丁命令是 !unzip -o ~/Downloads/optsPatch_MACOSX8.patch6 需要做的工作都差不多了 就可以mex -setup 了选择Template Options file for building gcc MEX-files 就可以了至此就完成了matlab C编译器 xcode的设置如果需要libsvm,下载之后直接make就行了。&
转载本文请联系原作者获取授权,同时请注明本文来自潘林科学网博客。链接地址:
上一篇:下一篇:
当前推荐数:0
推荐到博客首页
评论 ( 个评论)
扫一扫,分享此博文
作者的其他最新博文
热门博文导读
Powered by
Copyright &24小时热门版块排行榜&&&&
(小有名气)
在线: 15小时
虫号: 789793
注册: 专业: 组织行为与组织文化
小白求助一个matlab初级问题“??? Undefined function or variable”
运行一个模型,偶尔能出结果图形,但多数情况下总是出现??? Undefined function or variable “t”或“y”。这应该是个初级问题,但本人纯粹新手,不知如何解决,抑郁了两天,向各位大侠求助!程序如下:
function dy=ODE45_fun(t,y)
a=5;b=4.5;c=3;d=3;e=4.9;f=4;g=3.5;h=5;
dy(1)=y(1).*(1-y(1)).*((f-e+g-h).*y(2)-(g-h));
dy(2)=y(2).*(1-y(2)).*((a-c)-(a-c+d-b).*y(1));
dy=[dy(1);dy(2)];
ODE45_fun(t,y)
%ODE45主函数,用以计算yh方程
%tspan为时间区间
tspan=[0,50];
%y0为初始值
y0=[0.45;0.76];
%调用函数进行计算
[t,y]=ode45('ODE45_fun',tspan,y0);
%其他设置为缺省默认
data=[t,y];
save ODE45_data.txt data -ascii
%数据太大,以ASCII文件保存
plot(t,y(:,1),'-',t,y(:,2),'m')
title('yh方程')
& 猜你喜欢
已经有10人回复
已经有17人回复
已经有241人回复
已经有56人回复
已经有60人回复
已经有56人回复
已经有11人回复
已经有37人回复
已经有8人回复
已经有5人回复
相关版块跳转
第一性原理
我要订阅楼主
的主题更新
小木虫,学术科研互动社区,为中国学术科研免费提供动力
违规贴举报删除请发送邮件至:
广告投放与宣传请联系 李想 QQ:
QQ:&&邮箱:
Copyright &
MuChong.com, All Rights Reserved. 小木虫 版权所有0 accepted answers
reputation: 0
Undefined function or variable
0 accepted answers
reputation: 0
Latest activity
0 accepted answers
reputation: 0
on 24 Sep 2014
724 accepted answers
reputation: 3,879
39 views (last 30 days)
39 views (last 30 days)
Hello All,I get this errorUndefined function or variable "uw".
Error in myoz&elj (line 292)
ua=exp(-beta*(uw + cb));
Error in myoz (line 66)
U11=elj(r,sig11,eps11,beta,Lb,q1,q1);
How to solve it? Can anyone please help me to solve it?This is my codefunction [h,c]=myoz
global L U rho iopt
iopt = 0; % Hyper-netted Chain
eps11=1.0; eps12=0.7; eps22=0.5;
sig11=10.0; sig12=6.0; sig22=1.0;
q1=-2.0;q2=+1.0;
rho1= 0.25*10^(-4);
rho2=(-rho1*q1)/q2;
beta=0.40093;
Lb= 0.0036069;
dx = sig11/300; L = (n-1)* r=0:dx:L; r=r';
dt= pi./L;
rho=[rho1',rho2']';
%U=elj(r,sigma,epsilon,beta);
U11=elj(r,sig11,eps11,beta,Lb,q1,q1);
U12=elj(r,sig12,eps12,beta,Lb,q1,q2);
U22=elj(r,sig22,eps22,beta,Lb,q2,q2);
U=[U11',U12',U22']';
tol=[1.d-8,1.d-8];
x=zeros(6*n,1);
parms=[40,80,-0.9];
[sol, it_hist, ierr] = nsoli(x,'oz',tol);
%% Unpack h and c.
h11=sol(1:n);h12=sol(n+1:2*n); h22=sol(2*n+1:3*n);
c11=sol(3*n+1:4*n); c12=sol(4*n+1:5*n); c22=sol(5*n+1:6*n);
g11= h11+1; g12= h12+1; g22= h22+1;
cd=cdirect(c12,c22);
if h11~=0.0
veff = h11-ceff-log(1.0+h11);
h111= (exp(-veff+h11-ceff))-1;
function u= elj(r,sigma,epsilon,beta,Lb,q1,q2)
n2=length(r);
ra=r(2:n2);
r12=(sigma./ra).^12; r6=(sigma./ra).^6;
%cb =((q1*q2)./(4*pi*epsilon0*ra*0.59616));
%u = uwca+
cb = ((Lb*q1*q2)./(beta*ra));
uj= 4*epsilon*(r12-r6);
if ra &= 1.12246*sigma
ua=exp(-beta*(uw + cb));
u=[0,ua']';
to comment.
724 accepted answers
reputation: 3,879
Direct link to this answer:
Copy to Clipboard
724 accepted answers
reputation: 3,879
&Accepted Answer
'uw' is defined in an if statement, but used in the else part of the same if statement where it is guaranteed not to be defined.
0 accepted answers
reputation: 0
to comment.
1,335 accepted answers
reputation: 7,795
Direct link to this answer:
Copy to Clipboard
1,335 accepted answers
reputation: 7,795
function u= elj(r,sigma,epsilon,beta,Lb,q1,q2)
if ra &= 1.12246*sigma
ua=exp(-beta*(uw + cb));
There's no path to have uw defined in the function if the else clause is taken...only if the condition is true will there be a value for uw defined.
0 accepted answers
reputation: 0
to comment.
Discover what MATLAB(R) can do for your career.
Opportunities for recent engineering grads.
An Error Occurred
Unable to complete the action because of changes made to the page. Reload the page to see its updated state.
Select Your Location
Choose your location to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a location from the following list:
(Fran?ais)
(Italiano)
Switzerland
Asia Pacific

我要回帖

更多关于 nature or function 的文章

 

随机推荐