我一直在搜索整个下午并且找不到解决方案来通过指定路径而不是将其目录添加到路径来在matlab中调用函数.
这个问题非常类似于是否可以调用一个不在MATLAB路径中的函数?,但在我的情况下,我不想调用内置函数,而只是调用m文件中定义的普通函数.
我认为句柄可能是一个解决方案(因为显然它们可以引用不在路径上的函数),但是我再次发现无法创建句柄而不cd在目录中创建句柄,在那里创建它并且cd返回.试图"探索"函数处理对象是什么以及如何通过引用不在路径上的特定函数来创建一个,这让我无处可去.
因此,解决方案可能来自两个角度:
1)您知道如何为特定目录中的m文件创建句柄.
2)你知道一种不在matlab路径上调用函数的方法.
编辑:我刚刚发现了functions(myhandle)一个实际上让你看到句柄引用的文件路径的函数.但是仍然无法修改它......
搜索了一下互联网,发现没有好办法...我现在的解决方案是:
public class A {}
List<Object> obj = new ArrayList<Object>();
obj.add(new A());
// Ugly solution here:
List<A> a = (List<A>) (List) obj;
Run Code Online (Sandbox Code Playgroud)
但这非常难看,并得到警告.没有"官方"的方式这样做?
编辑:关闭这个的人:我知道在Java中如何将一个对象列表从一种类型转换为另一种类型?它与我在我的问题中发布的那个相同(只是<?> 在第一次演员完全相同之后加入)我正在寻找更"干净"的东西.在使用Class<?> clazz = listobj.get(0).getClass获取类的方法和在运行时转换到正确的类的方向(但不知道是否有类似的东西... Eclipse似乎不喜欢它...)