Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.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
使用函数find matlab在结构化矩阵中获得特定索引_Matlab_Matrix_Struct_Find - Fatal编程技术网

使用函数find matlab在结构化矩阵中获得特定索引

使用函数find matlab在结构化矩阵中获得特定索引,matlab,matrix,struct,find,Matlab,Matrix,Struct,Find,我收到这个错误 尝试引用非结构数组的字段 扰动法中的错误(第136行) [j,k]=find(pop(i).mat.p==x) pop是结构矩阵(mat)的总体。我想知道矩阵矩阵p部分中特定元素的索引,请问如何处理?显然您忘记了考虑pop(i)。mat是一个单元数组。以下方面应起作用: % Create data structure NP=10; matR=4; matC=4; for i=1:NP for j=1:matR for k=1:matC MAT{j,k}.s

我收到这个错误 尝试引用非结构数组的字段 扰动法中的错误(第136行) [j,k]=find(pop(i).mat.p==x)
pop是结构矩阵(mat)的总体。我想知道矩阵矩阵p部分中特定元素的索引,请问如何处理?

显然您忘记了考虑
pop(i)。mat
是一个单元数组。以下方面应起作用:

% Create data structure
NP=10;
matR=4;
matC=4;
for i=1:NP
  for j=1:matR
    for k=1:matC
      MAT{j,k}.s=randi(8);
      MAT{j,k}.p=randi(16);
    end
  end
  pop(i).mat=MAT;
end

% Find `x' in data
x=5;
for i=1:NP
  q=[pop(i).mat{:}];
  [j,k]=ind2sub(size(pop(i).mat),find([q.p]==x)), %we could use reshape() here instead
end

但是,如果可能的话,你可能想考虑简化你的程序:

% Create data structure
NP=10;
matR=4;
matC=4;
s=randi(8,[matR matC NP]);
p=randi(16,[matR matC NP]);

% Find `x' in data
x=5;
for i=1:NP
  [j,k]=find(p(:,:,i)==x),
end

显然,您忘记考虑到
pop(i).mat
是一个单元数组。以下方面应起作用:

% Create data structure
NP=10;
matR=4;
matC=4;
for i=1:NP
  for j=1:matR
    for k=1:matC
      MAT{j,k}.s=randi(8);
      MAT{j,k}.p=randi(16);
    end
  end
  pop(i).mat=MAT;
end

% Find `x' in data
x=5;
for i=1:NP
  q=[pop(i).mat{:}];
  [j,k]=ind2sub(size(pop(i).mat),find([q.p]==x)), %we could use reshape() here instead
end

但是,如果可能的话,你可能想考虑简化你的程序:

% Create data structure
NP=10;
matR=4;
matC=4;
s=randi(8,[matR matC NP]);
p=randi(16,[matR matC NP]);

% Find `x' in data
x=5;
for i=1:NP
  [j,k]=find(p(:,:,i)==x),
end

嗨,Samia,你能给我们提供更多关于你的数据结构的细节吗?
pop
及其子元素的示例是什么?NP=10;对于i=1:NP对于j=1:matR对于k=1:matC MAT{j,k}.s=randi(8);MAT{j,k}.p=randi(16);端部弹出(i)。垫=垫;嗨,Samia,你能给我们提供更多关于你的数据结构的细节吗?
pop
及其子元素的示例是什么?NP=10;对于i=1:NP对于j=1:matR对于k=1:matC MAT{j,k}.s=randi(8);MAT{j,k}.p=randi(16);端部弹出(i)。垫=垫;它很好用谢谢一种乳液很好用谢谢