Filter löschen
Filter löschen

How to use 'find' function in matlab

10 Ansichten (letzte 30 Tage)
Atinesh Singh
Atinesh Singh am 28 Mär. 2017
Kommentiert: KSSV am 28 Mär. 2017
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 Kommentare
KSSV
KSSV am 28 Mär. 2017
You have to mention what you are expecting actually?
Atinesh Singh
Atinesh Singh am 28 Mär. 2017
I need to check whether a particular element present in the population If it does then I want to remove it from the population

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

KSSV
KSSV am 28 Mär. 2017
idx = 1:length(P) ;
P = P(find(idx ~= xi));
  6 Kommentare
Atinesh Singh
Atinesh Singh am 28 Mär. 2017
is there any other way to do it
KSSV
KSSV am 28 Mär. 2017
Define xi as a structure..And try using ismemeber etc.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by