Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop MATLAB-为什么它抱怨classdef'的@文件夹;d对象?_Oop_Matlab - Fatal编程技术网

Oop MATLAB-为什么它抱怨classdef'的@文件夹;d对象?

Oop MATLAB-为什么它抱怨classdef'的@文件夹;d对象?,oop,matlab,Oop,Matlab,我已经写了很长时间的面向对象的MATLAB代码。然而,我现在第一次在Windows机器上运行MATLAB代码 我有以下代码: classdef myClass < handle properties i end methods function obj = myClass() obj.i = 0; end function say(obj) obj.i

我已经写了很长时间的面向对象的MATLAB代码。然而,我现在第一次在Windows机器上运行MATLAB代码

我有以下代码:

classdef myClass < handle
    properties
        i
    end

    methods
        function obj = myClass()
            obj.i = 0;
        end

        function say(obj)
            obj.i = obj.i + 1;
            fprintf('This is time #%i you invoked me!\n', obj.i);
        end
    end
end
我在编写OOP MATLAB代码的过程中从来没有使用过@文件夹。我的理解是,如果类方法与classdef文件(我的不是)分开编写,或者如果它使用旧式的MATLAB类语法(我的不是),那么它是必需的

我想我知道交易是什么,我想看看是否有解决办法:我的工作目录是

C:\Users\DangKhoa@MyCompany.com\Documents\MATLAB

那是不是@扔掉MATLAB,让电脑觉得我在一个文件夹里?如果是的话,有没有解决办法(除了在我的电脑上创建一个新用户之外,很明显,这可能是不可行的)?如果不是,发生了什么?

看起来是肯定的,在文件夹中间的<代码> @ /代码>引起了错误。我向MathWorks提交了一份错误报告

看来很可能是
@
把事情搞砸了。不过,您可以在任何地方安装用户生成的代码。您只需使用
userpath
函数更改“用户路径”,Matlab就会在那里查找您的代码。@-文件夹来自旧版本的Matlab。2008年,语法被戏剧性地重新编写。@slayton:?您能在Linux上运行它吗,在
~/Documents这样的文件夹中/test@test/myClass.m
?如果这能起作用,那就是Windows操作系统。此外,我怀疑“@”是否是问题所在,因为“@”也必须是文件夹名称中的第一个字符……但我可能错了。@DangKhoa:我正在工作,正在测试它,事实上,“@”是问题所在!这似乎是向我提交Mathworks错误报告的一个正当理由。他们响应并将其添加到现有的错误报告中。
C:\Users\DangKhoa@MyCompany.com\Documents\MATLAB