How to use 'find' function in matlab

1 回表示 (過去 30 日間)
Atinesh Singh
Atinesh Singh 2017 年 3 月 28 日
コメント済み: KSSV 2017 年 3 月 28 日
In the below code, We have a random population with structures Position (3D array) and Cost. I need to check whether a particular element present in the population If it does then I want to remove it from the population. I'm using 'find' function for doing it. It was working fine with arrays but with structures I'm getting error below error
_ Undefined operator '~=' for input arguments of type 'struct'_
Here is the code
clc; clear all;
varMin = -5;
varMax = 5;
D = 3;
VarSize = [1 D]; % Decision Variables Matrix Size
NP = 3;
empty_individual.Position = [];
empty_individual.Cost = [];
P = repmat(empty_individual, NP, 1);
addpath('E:\Dimensionality Reduction\DR & Optimization\Data\Objective Functions');
CostFunction = @(x) sphere(x);
%%Generating random population
for i = 1:NP
P(i).Position = unifrnd(varMin, varMax, VarSize);
P(i).Cost = CostFunction(P(i).Position);
end
xi = [1 1 1]; % xig
P = P(find(P ~= xi));
  4 件のコメント
KSSV
KSSV 2017 年 3 月 28 日
You have to mention what you are expecting actually?
Atinesh Singh
Atinesh Singh 2017 年 3 月 28 日
I need to check whether a particular element present in the population If it does then I want to remove it from the population

サインインしてコメントする。

採用された回答

KSSV
KSSV 2017 年 3 月 28 日
idx = 1:length(P) ;
P = P(find(idx ~= xi));
  6 件のコメント
Atinesh Singh
Atinesh Singh 2017 年 3 月 28 日
is there any other way to do it
KSSV
KSSV 2017 年 3 月 28 日
Define xi as a structure..And try using ismemeber etc.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by