gpt4 book ai didi

octave - 如何:选择单元格数组中的所有行,其中特定列具有特定值

转载 作者:行者123 更新时间:2023-12-02 05:08:03 24 4
gpt4 key购买 nike

我有一个单元格数组A。我想选择第一列(例如)值为1234的所有行。

当A不是单元格数组时,我可以通过以下方法完成此操作:

B = A(A(:,1) == 1234,:);

但是当A是一个单元格数组时,我收到此错误消息:
error: binary operator `==' not implemented for `cell' by `scalar' operations

有人知道如何完成一个单元格阵列吗?

最佳答案

问题是表达式a(:,1) == 1234(还有a{:,1} == 1234)。

例如:

octave-3.4.0:48> a
a =
{
[1,1] = 10
[2,1] = 13
[3,1] = 15
[4,1] = 13
[1,2] = foo
[2,2] = 19
[3,2] = bar
[4,2] = 999
}
octave-3.4.0:49> a(:,1) == 13
error: binary operator `==' not implemented for `cell' by `scalar' operations
octave-3.4.0:49> a{:,1} == 13
error: binary operator `==' not implemented for `cs-list' by `scalar' operations

我不知道这是最简单还是最有效的方法,但这可行:
octave-3.4.0:49> cellfun(@(x) isequal(x, 13), a(:,1))
ans =

0
1
0
1

octave-3.4.0:50> a(cellfun(@(x) isequal(x, 13), a(:,1)), :)
ans =
{
[1,1] = 13
[2,1] = 13
[1,2] = 19
[2,2] = 999
}

关于octave - 如何:选择单元格数组中的所有行,其中特定列具有特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8887924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com