我有一个函数来计算矩阵的两列的平均值.例如,如果以下矩阵是输入:
inputMatrix =
1 2 5 3 9
4 6 2 3 2
4 4 3 9 1
Run Code Online (Sandbox Code Playgroud)
......我的命令是:
outputVector = mean(inputArray(:,1:2))
Run Code Online (Sandbox Code Playgroud)
...然后我的输出是:
outputVector =
3 4
Run Code Online (Sandbox Code Playgroud)
当我的输入矩阵只包含一行时(即它是一个向量,而不是一个矩阵),就会出现问题.
例如,输入:
inputMatrix =
4 3 7 2 1
Run Code Online (Sandbox Code Playgroud)
给出输出:
outputVector =
3.5000
Run Code Online (Sandbox Code Playgroud)
无论输入中有多少行,我都希望保持相同的行为.为了澄清,上面第二个例子的正确输出应该是:
outputVector =
4 3
Run Code Online (Sandbox Code Playgroud) 我使用'plot3'函数绘制了3D数据.我想约束Y轴和Z轴,使它们在尺度上相等.X轴应像往常一样自动缩放.
我从这里知道我可以通过使用命令使X轴成为唯一一个自动缩放的轴:
axis 'auto x';
Run Code Online (Sandbox Code Playgroud)
但是,这会导致Y轴和Z轴仅从0到1绘制; 我的数据在所有轴上都经常超过这个.我正在寻找的是一个包含单个视图中所有数据的图,但是缩小了Y轴或Z轴的最小值,以便Y轴和Z轴的比例相等.
我们将非常感激地提供任何帮助.
我在 R 和 Python 中使用 Sublime Text 3 和 SublimeREPL 作为我的命令。每当启动 SublimeREPL 时,它都会将当前工作目录设置为 Sublime Text 安装目录。这发生在 Windows 和 Mac OSX 上。通常,我需要从 R 或 Python 运行代码,这会打开一个文件,该文件与我正在运行的R或py文件位于同一文件夹中。在正常情况下(即不使用 Sublime Text),这可以正常工作,因为 R 或 Python 解释器知道在脚本所在的同一目录中查找。
然而,使用 SublimeREPL,命令作为文本“传输”到 SublimeREPL,因此 SublimeREPL 不知道程序来自哪里。因此,我需要在我的每个程序中明确指定我试图访问的文件的位置,这有点笨拙,特别是如果我的程序四处移动(他们这样做)。
有没有办法让 SublimeREPL 在启动时将当前工作目录设置为与当前活动脚本文件相同的目录?这将是一个很好的解决方法,因为这意味着如果我改为使用位于不同目录中的文件,则必须重新启动 REPL。

从版本R2014b开始,MATLAB现在渲染图形很好地消除锯齿(最后!)
然而,这会导致显示我的一些数字的方式出现故障.如果我绘制一条线,使用hold on然后在不同颜色的完全相同的位置绘制另一条线,则该线以两种颜色的斑驳组合出现.在过去,该线条将简单地显示为在该位置绘制的最后一种颜色.
以下是蓝色迹线的示例,其中一些部分(较陡的位)显示绿线.在以前的MATLAB版本中,绿线将是连续的,但现在一些蓝线显示出来.

在新版本中是否有一种巧妙的解决方法,或者我必须确保在绘制到同一个地方之前删除任何现有的行?
na.spline()我在使用包中的功能时遇到问题zoo。尽管文档明确指出这是一个插值函数,但我得到的行为包括外推。
以下代码重现了该问题:
require(zoo)
vector <- c(NA,NA,NA,NA,NA,NA,5,NA,7,8,NA,NA)
na.spline(vector)
Run Code Online (Sandbox Code Playgroud)
其输出应该是:
NA NA NA NA NA NA 5 6 7 8 NA NA
Run Code Online (Sandbox Code Playgroud)
这将是内部 NA 的插值,将尾随 NA 保留在适当的位置。但是,我得到的是:
-1 0 1 2 3 4 5 6 7 8 9 10
Run Code Online (Sandbox Code Playgroud)
根据文档,这不应该发生。有什么方法可以避免外推吗?
我认识到在我的示例中,我可以使用线性插值,但这是 MWE。虽然我不一定会使用 na.spline() 函数,但我需要某种方法来使用三次样条进行插值。
我试图从矩阵中复制一些元素,但不是整行,而不是单个元素.
例如,在以下矩阵中:
a = 1 2
3 4
5 6
7 8
9 0
Run Code Online (Sandbox Code Playgroud)
我该如何复制以下数据?
b = 1
3
5
Run Code Online (Sandbox Code Playgroud)
即第1列中的行1:3 ...我知道您可以删除整个列,如下所示:
b = a(:,1)
Run Code Online (Sandbox Code Playgroud)
...我很欣赏可以这样做,然后转储最后两行,但我想使用更简化的代码,因为我正在运行一个资源密集型解决方案.
我将来自多个主题的数据存储在单个CSV文件中.导入CSV文件后,我想将每个参与者的数据拆分为自己的data.frame.
更确切地说,我想采用下面的示例数据,并创建三个新的data.frames; 每个'subject_initials'值都有一个值.

我该怎么做呢?到目前为止,我一直在研究使用该plyr软件包的选项split(),但尚未找到解决方案.我知道我可能错过了一些明显的东西.
我可以使用atoi将文本输入转换为对话框吗?
我需要对使用对话框输入的几个双精度值进行计算。我只知道 'atoi' 但这仅适用于整数吗?
如果我想确保if只有两个条件的两个条件都为真时才执行一个语句,我应该使用&还是&&在语句的子句之间?
例如,我应该使用
if a == 5 & b == 4
Run Code Online (Sandbox Code Playgroud)
要么
if a == 5 && b == 4
Run Code Online (Sandbox Code Playgroud)
我知道前者是元素,后者是短路的,但我不明白这意味着什么.
我有两个列形式的向量,例如:
a = 1
2
3
4
5
b = 2
1
3
5
4
Run Code Online (Sandbox Code Playgroud)
我使用以下代码检索每个产品:
for i = 1 : length(a)
ab(i) = a(i) * b(i);
end
Run Code Online (Sandbox Code Playgroud)
这给出了:
ab = 2
2
9
20
20
Run Code Online (Sandbox Code Playgroud)
这很好,它产生了正确的答案,但似乎效率不高; 我认为必须有一种没有'for'循环的语法方法吗?
matlab ×6
plot ×2
r ×2
atoi ×1
c++ ×1
cubic-spline ×1
dataframe ×1
double ×1
int ×1
matlab-hg2 ×1
matrix ×1
mean ×1
operands ×1
sublimerepl ×1
sublimetext3 ×1