右侧索引赋值

1个视图(过去30天)
我调用函数f(x)它返回一个100列的矩阵。
我只需要第10列。所以我需要从整个返回的矩阵中得到一个向量。
我需要去掉99列,只保留第10列。
在Julia中,这可以通过以下方式实现:
columnTen = f(x)[:,10]
我非常想在MATLAB中做同样的事情。
不知道为什么这个简单的操作看起来不可能。

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2020年11月17日
columnTen = struct(“外汇”20),兰德(7日).fx (:, 10)%需要R2019b或更高版本的IIRC
columnTen = 7×1
0.9090 0.8635 0.0364 0.2788 0.2503 0.1882 0.7757
column10 = subsref(rand(7,20), substruct(“()”, {“:”, 10}))
columnTen = 7×1
0.3391 0.0112 0.5269 0.0961 0.5855 0.0371 0.4590
但如果你被允许提前初始化:
Col = @(M,n) M(:,n);%一次
ColumnTen = Col(rand(7,20), 10)
1评论
斯楠伊斯兰教
斯楠伊斯兰教 2020年11月18日
啰嗦但有效。我希望MATLAB使它像其他语言一样简单。谢谢你!

登录发表评论。

更多答案(1)

安德烈Bobrov
安德烈Bobrov 2020年11月17日
Y = f(x);
columnTen = Y(:,10);
1评论
斯楠伊斯兰教
斯楠伊斯兰教 2020年11月17日
这是两个步骤。我需要在运行中进行赋值,只需一行(一个操作)。我和人物打交道。我没有选择工作在多行(多个操作)。不过还是谢谢你!

登录发表评论。

类别

找到更多资料矩阵与数组帮助中心而且文件交换

标签

社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!

开始狩猎!

翻译的