Effacer les filtres
Effacer les filtres

you have 2 vectors - how do you delete the same row in both?

2 vues (au cours des 30 derniers jours)
nayan
nayan le 14 Mar 2021
Sorry I am new to matlab and trying to learn....
Lets say we have 2 vector matrix's, Flows & FaultCodes
Flows:
12
32
56
16
98
FaultCodes (This is in one column, one cell contacts B233,B111,B222,B333 for example)
B233,B111,B222,B333
[ ]
[ ]
B212, B225, B233, B111
B786, B331, B332
  1. From FaultCodes I would like to delete the rows with [ ] and delete the same rows in Flows
which should give you this:
Flows:
12
16
98
FaultCodes
B233,B111,B222,B333
B212, B225, B233, B111
B786, B331, B332
2.Then, lets say I wanted to search for "B111" in FaultCodes, I would like the program to give me the value: 12 & 16 from the Flows

Réponses (1)

Image Analyst
Image Analyst le 14 Mar 2021
Try this:
Flows=[
12
32
56
16
98]
FaultCodes = {... % (This is in one column, one cell contacts B233,B111,B222,B333 for example)
'B233,B111,B222,B333';...
[ ];...
[ ];...
'B212, B225, B233, B111';...
'B786, B331, B332'}
% Find rows where the cell is empty
badRows = false(1, size(FaultCodes, 1));
for row = 1 : size(FaultCodes, 1)
if isempty(FaultCodes{row})
badRows(row) = true;
end
end
% Get rid of those rows
if any(badRows)
Flows(badRows) = [] % Delete rows
FaultCodes = FaultCodes(~badRows) % Another way - extract good rows.
end
You could use cellfun() if you want a shorter way to find the bad rows, but it will be more cryptic and harder to understand/follow.

Catégories

En savoir plus sur Dictionaries dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by