How to search and find array in array?

1 visualización (últimos 30 días)
Hilal
Hilal el 12 de Sept. de 2024
Comentada: Star Strider el 13 de Sept. de 2024
Hello,
I create an array below;
bigArray = rand(1,150);
bigArray(1,15:19) = [1 1 1 1 1]';
bigArray(1,25:29) = [1 1 1 1 1]';
bigArray(1,75:79) = [1 1 1 1 1]';
bigArray(1,105:109) = [1 1 1 1 1]';
bigArray(1,65) = 1;
bigArray(1,5:6) = [1 1]';
I want to find [1 1 1 1 1]' array indexes. But I run the code;
idx = find(ismember(bigArray,[1 1 1 1 1]'))
idx = 1×23
5 6 15 16 17 18 19 25 26 27 28 29 65 75 76 77 78 79 105 106 107 108 109
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
I want to see as an output; [15 16 17 18 19 25 26 27 28 29 75 76 77 78 79 105 106 107 108 109]

Respuesta aceptada

Star Strider
Star Strider el 12 de Sept. de 2024
The ismember function is doing exactly what it should. You need to examine ‘bigArray’ tto understand its output.
Try this —
bigArray = rand(1,150);
bigArray(1,15:19) = [1 1 1 1 1]';
bigArray(1,25:29) = [1 1 1 1 1]';
bigArray(1,75:79) = [1 1 1 1 1]';
bigArray(1,105:109) = [1 1 1 1 1]';
bigArray(1,65) = 1;
bigArray(1,5:6) = [1 1]';
disp(bigArray)
Columns 1 through 18 0.5068 0.9505 0.0516 0.0882 1.0000 1.0000 0.0318 0.3127 0.8880 0.0266 0.9131 0.8241 0.3292 0.0973 1.0000 1.0000 1.0000 1.0000 Columns 19 through 36 1.0000 0.4800 0.7703 0.2106 0.1942 0.6979 1.0000 1.0000 1.0000 1.0000 1.0000 0.4912 0.4754 0.2845 0.7561 0.9840 0.1853 0.1938 Columns 37 through 54 0.4194 0.0772 0.1116 0.3382 0.2339 0.0543 0.3256 0.9436 0.2975 0.6174 0.2227 0.7096 0.5371 0.9033 0.7377 0.5522 0.5055 0.3581 Columns 55 through 72 0.8638 0.2271 0.3195 0.0197 0.4622 0.0299 0.3055 0.4705 0.3989 0.4399 1.0000 0.6735 0.8151 0.1478 0.8166 0.2860 0.6436 0.8295 Columns 73 through 90 0.4801 0.7913 1.0000 1.0000 1.0000 1.0000 1.0000 0.8977 0.8132 0.6884 0.4697 0.2341 0.1666 0.4997 0.6061 0.5467 0.4436 0.5024 Columns 91 through 108 0.8998 0.2705 0.0215 0.1483 0.4976 0.9649 0.5099 0.9422 0.8145 0.3519 0.6390 0.0093 0.5664 0.9736 1.0000 1.0000 1.0000 1.0000 Columns 109 through 126 1.0000 0.7624 0.4387 0.6305 0.1326 0.6353 0.2669 0.3236 0.1274 0.4486 0.2744 0.5949 0.0264 0.7638 0.9727 0.1876 0.1710 0.6894 Columns 127 through 144 0.3853 0.9315 0.9158 0.8965 0.2594 0.0620 0.3116 0.6300 0.4641 0.4008 0.7085 0.1320 0.1949 0.4087 0.7125 0.2770 0.0934 0.5674 Columns 145 through 150 0.4633 0.3660 0.7867 0.9442 0.3935 0.3620
Lv = ismember(bigArray,[1 1 1 1 1]')
Lv = 1x150 logical array
Columns 1 through 45 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 46 through 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 Columns 91 through 135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 136 through 150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
idx = find(Lv)
idx = 1×23
5 6 15 16 17 18 19 25 26 27 28 29 65 75 76 77 78 79 105 106 107 108 109
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
.
  4 comentarios
Hilal
Hilal el 13 de Sept. de 2024
Thank you very much!
Star Strider
Star Strider el 13 de Sept. de 2024
As always, my pleasure!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Dictionaries en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by