Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何找到特定成员具有特定值的第一个结构? 背景_Matlab_Struct_Find - Fatal编程技术网

Matlab 如何找到特定成员具有特定值的第一个结构? 背景

Matlab 如何找到特定成员具有特定值的第一个结构? 背景,matlab,struct,find,Matlab,Struct,Find,我有一个名为STRUCT_a的数据向量,它包含以下结构。这些结构中的每一个都有随机从Jenkins构建填充的子值。下面是此数据向量的一个实例的示例: BEGIN STRUCT for STRUCT_A somemember_: 4 anothermember_: 3 location_: "New York" END STRUCT for STRUCT _A BEGIN STRUCT for STRUCT_A somemember_: 6 another

我有一个名为STRUCT_a的数据向量,它包含以下结构。这些结构中的每一个都有随机从Jenkins构建填充的子值。下面是此数据向量的一个实例的示例:

BEGIN STRUCT for STRUCT_A
    somemember_: 4
    anothermember_: 3
    location_: "New York"
END STRUCT for STRUCT _A

BEGIN STRUCT for STRUCT_A
    somemember_: 6
    anothermember_: 123
    location_: "South Bend"
END STRUCT for STRUCT_A

BEGIN STRUCT for STRUCT_A
   somemember_: 10
   anothermember_: 6
   location_: "Baton Rouge"
END STRUCT for STRUCT_A
您可以使用以下语法访问任何特定成员:
STRUCT\u A。例如,anothermember(2)
将返回
123

问题和尝试的解决方案 我想找到
1
出现在
anothermember:
成员中的第一个结构,然后返回同一结构中
somemember的值。我对该命令做了一些研究,但主要关注一个向量的成员。我的情况是处理具有多个成员的结构。下面是我试图做的最接近的例子:

上图显示了一个名为
X
的4乘4幻方矩阵。在上面的例子中,我试图找到矩阵中的第一个
2
,在本例中,它位于位置5。此2的位置将在每次运行Jenkins构建时更改。上面的例子涉及我更广泛问题的前半部分。但是,我不知道如何将此方法转换为结构,因此我的问题是

问题: 如何找到所述结构的特定成员具有特定值的第一个结构?

可能的解决方案:

% Reproduction example
a = struct('somemember_',1);
b = struct('somemember_',2);
c = struct('somemember_',2);
struct_array = [a b c];

elementOfInterest = 2;

% Find index of first occurence of element of interest in the struct array
find([struct_array.somemember_] == elementOfInterest,1)
返回

2
一种可能的解决办法:

% Reproduction example
a = struct('somemember_',1);
b = struct('somemember_',2);
c = struct('somemember_',2);
struct_array = [a b c];

elementOfInterest = 2;

% Find index of first occurence of element of interest in the struct array
find([struct_array.somemember_] == elementOfInterest,1)
返回

2

你能分享一些MATLAB代码来重现吗?没有截图您的数据格式有点不清楚。你有一个结构元素的向量,还是一个在其字段中存储向量的结构?第一个将像
STRUCT\u A(2).anothermember
一样被索引,而第二个将像
STRUCT\u A.anothermember(2)
一样被索引。另一个问题。。。在您的示例中,您是在寻找一个等于
1
的字段,还是一个包含一个带有
1
的数字的字段?@g请注意我上面给出的代码示例中冒号的右侧。。如果这回答了您的问题。您能共享一些MATLAB代码来重现吗?没有截图您的数据格式有点不清楚。你有一个结构元素的向量,还是一个在其字段中存储向量的结构?第一个将像
STRUCT\u A(2).anothermember
一样被索引,而第二个将像
STRUCT\u A.anothermember(2)
一样被索引。另一个问题。。。在您的示例中,您是在寻找一个等于
1
的字段,还是一个包含
1
的数字的字段?@n在我上面给出的代码示例中,请检查冒号的右侧。。如果这回答了您的问题。