matlab 文件路径 运行出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 文件路径 运行出错相关的知识,希望对你有一定的参考价值。

file D:\matlab\work\1-4.m is not found in the current directory or on the matlab path.
在fire 窗口编好程序后就出现这个警告框,还有三个选项要你选。。。都选过都不行。。。。。。。急啊!!!

1、MATLAB程序运行错误后,切换到MATLAB命令行中,观察命令行中的错误信息,确定错误原因。
2、在错误信息中,查找源程序中错误代码的行数,点击行数链接,可以直接定位错误语句。
3、错误语句定位后,自动跳转到代码编辑器中,在代码编辑器中通过光标标识错误代码的位置。
4、确定错误语句后,通过F12快捷键在错误语句处设定断点。
5、断点设定完成后,通过F5快捷键重新执行程序,程序会在断点处停止运行,进入调试状态。
6、在调试状态下多个步骤可以查找程序问题的原因:
(1)将鼠标放置在变量上方,这时代码编辑器会自动显示变量的类型、维数、各维大小等信息,根据此信息帮助程序员查找程序中变量错误原因。
(2)将问题代码行复制到在MATLAB命令行中执行,重现错误。可反复重新错误,而不中断程序运行,而且不用重新执行程序,提高调试效率。
(3)通过whos、size、help等命令协助确定错误原因。其中,whos命令可查看当前工作区中变量列表,size可以确定某一变量的维数和各维大小,help可以确定某一操作符或函数的帮助信息。
如:
K>> whos
Name Size Bytes Class Attributes
ans 1x2 16 double
d 20x20 3200 double
filename 1x60 120 char
xx 20x20 3200 double
yy 20x20 3200 double
zz 10x10 800 double
K>> size(zz)
ans =
10 10
K>> size(d)
ans =
20 20
K>> help +
plus - Addition
This MATLAB function adds arrays A and B and returns the result in C.
C = A + B
C = plus(A,B)
plus 的参考页
另请参阅 cumsum, minus, sum, uplus
名为 plus 的其他函数
finance/plus, fixedpoint/plus, symbolic/plus, matlab/plus, +,
symbolic/plus, +, matlab/+, symbolic/+
K>>
7、分析上述信息,最终确定MATLAB程序执行错误的原因。上述实例中,程序执行错误的原因为:变量a和变量zz的行数和列数不一致,不符合+操作符的要求。
参考技术A 首先请确保楼主的m文件已经保存在你想保存的文件夹里,然后在current directory那里把文件夹指向楼主m文件所在的文件夹。。。
或者在警告框中选change current directory。。。本回答被提问者采纳
参考技术B 文件命名错误1-4.m应为a1_4.m
只能是英语、下划线、数字不能开头
参考技术C 或者复制到command window上运行 参考技术D 有教材 看看就知道了 改变搜索路劲

使用 Matlab codegen 在 Matlab 2013 中创建 mex 文件时出错

【中文标题】使用 Matlab codegen 在 Matlab 2013 中创建 mex 文件时出错【英文标题】:Error Creating a mex file in Matlab 2013 using Matlab codegen 【发布时间】:2014-04-11 11:27:37 【问题描述】:

我有一个名为 test (test.m) 的函数,我想使用 Matlab 2013b 中的 codegen 将其转换为 mex 文件。 这里 B 是一个包含零矩阵 p_z (大小 128 * 128 )的结构,而 plastset 是一个空矩阵( 0*0 )。 转换以下代码时出现错误: 除非指定了“行”,否则输入必须是向量。对于可变大小输入,第一维或第二维必须具有恒定长度 1 ,用于行 'actset = setxor (actset, plastset);'在下面提到的代码中

请帮我更正代码,以便成功将以下函数创建到 mex 文件中。

function [] = test(B)

p_z = B.p_z;

plastset = B.plastset;

if isempty(B.plastset)
     plastset = zeros(1,0);
end


if isempty(find( p_z > 0, 1 ))
     actset = zeros(1,0);
else
     actset = find( p_z > 0 );
     actset = setxor ( actset , plastset );
end

【问题讨论】:

我缺少 codegen,但文档提示您必须通过 -args 开关指定参数的类型。 [mathworks.de/matlabcentral/answers/… 支持线程)。 【参考方案1】:

从错误消息看来,setxor 不支持您调用它的方式的矩阵。如果你想用 plastset 对 actset 中的所有元素进行 setxor,请尝试使用冒号操作将它们作为向量。

actset = setxor(actset(:), plastset(:));

【讨论】:

谢谢你,我会试试这个让你知道

以上是关于matlab 文件路径 运行出错的主要内容,如果未能解决你的问题,请参考以下文章

在 Linux 中将路径添加到 Qt Creator 中的库时出错

idea获取java类的相对路径,然后打包后运行出错的问题

在当前文件夹或MATLAB路径中未找到文件XXXX

尝试将文件路径保存到数据库时出错

在设备中查找路径时出错

matlab怎么保存工作文件