小编KLJ*_*KLJ的帖子

在 MATLAB 中查找当前脚本(mlx 文件)的位置

我正在许多不同的位置处理我的 MATLAB 代码,如果我能让代码知道它在计算机上的位置,那将非常有帮助。到目前为止,我一直在使用 .m 文件。对于 .m 文件,我找到了以下解决方案:

%example 1    
cd(fileparts(mfilename('fullpath')))
Run Code Online (Sandbox Code Playgroud)

或者

%example 2
tmp = matlab.desktop.editor.getActive;
cd(fileparts(tmp.Filename));
Run Code Online (Sandbox Code Playgroud)

或者

%example 3
S = dbstack('-completenames');
S(1).file
Run Code Online (Sandbox Code Playgroud)

或者

%example 4
which(mfilename)
Run Code Online (Sandbox Code Playgroud)

但是在 MATLAB 2016a 中,有一个名为 live script 的新功能。这样一来,这些解决方案就不再起作用了。

%For example I would like to do something like this
cd(MLX_FILELOCATION);
%or
which(mlxfilename)
Run Code Online (Sandbox Code Playgroud)

编辑 III:问题:我无法获得当前打开/执行的 MATLAB 文件的路径/文件位置或名称。使用 *.m-files 这可以通过上面的示例实现。使用 *.mlx-files 它是不可能了。我更喜欢使用 *.mlx-files 而不是 *.m-files。)

在 *.mlx 文件中执行的上述示例的输出:

%example1: mfilename returns the path to the 'MatlabEvaluationHelper' in the 'AppData\Local\Temp'-folder
%example2: output is an empty …
Run Code Online (Sandbox Code Playgroud)

directory matlab cd

7
推荐指数
1
解决办法
1739
查看次数

R:传播向量的有效方法

是否有一种有效的编程方法来解决以下任务?

想象一下以下向量:

A<-[a,b,c...k]
Run Code Online (Sandbox Code Playgroud)

并希望通过以下方式传播它:让我们从例如n = 2开始

B<-[a,a,b,b,c...,k,k]
Run Code Online (Sandbox Code Playgroud)

现在n = 4或任何数字大于1

C<-[a,a,a,a,b,...,k,k,k,k]
Run Code Online (Sandbox Code Playgroud)

通过循环来解决这个问题看起来很简单,但是我错过/可以使用任何基于函数或矢量的操作吗?Tidyverse解决方案(在管道中使用它)对我来说是最好的解决方案.

(很难对这项任务进行研究,因为我是R中的新手并且没有正确的搜索条件.任何帮助都会有所帮助.)

r function vector tidyverse

0
推荐指数
1
解决办法
48
查看次数

标签 统计

cd ×1

directory ×1

function ×1

matlab ×1

r ×1

tidyverse ×1

vector ×1