How can I extract exact values from a single column of a matrix?

13 Ansichten (letzte 30 Tage)
The matrix in question has x, y, z coordinates in its first 3 columns respectively. I tried using a for-loop to go through the matrix and if it came across a row where x=0.025 then it would copy the entire row to a second matrix in it's 'f' row then f=f+1. The second matrix was premade with zeros and is the correct size, however it keeps resulting in no change to it.

Akzeptierte Antwort

Star Strider
Star Strider am 5 Jul. 2021
Try something like this —
M = randi(50, 50, 3)/1000 % Original Matrix
M = 50×3
0.0220 0.0010 0.0070 0.0320 0.0060 0.0030 0.0280 0.0440 0.0110 0.0140 0.0280 0.0050 0.0360 0.0220 0.0170 0.0110 0.0390 0.0350 0.0020 0.0410 0.0480 0.0030 0.0060 0.0260 0.0250 0.0060 0.0320 0.0050 0.0290 0.0380
Lv = M(:,1) == 0.025 % Logical Vector 'Mask'
Lv = 50×1 logical array
0 0 0 0 0 0 0 0 1 0
nrtrue = nnz(Lv) % Number Of Occurrences (Optional)
nrtrue = 3
N = M(Lv,:) % New Matrix
N = 3×3
0.0250 0.0060 0.0320 0.0250 0.0480 0.0420 0.0250 0.0010 0.0100
Make appropriate changes to get the result you want.
.

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by