# how to write values ​​to a vector and matrix by coordinates?

8 views (last 30 days)
Lev Mihailov on 31 Jan 2020
Commented: Lev Mihailov on 31 Jan 2020
Hello! With the 'find' command, I found the coordinates of all elements greater than 1, now I need to write them to the matrix and vector, how can I do this?
A=vector 1x1000
x=vector 1x1000
y=vector 1x1000
B=matrix 28x1000
idx=find(A>1);
idx=vector coordinates 1x25 [102 502 ...]
and now I need to get
x=vector 1x25
y=vector 1x25
B=matrix 28x25

Stephen Cobeldick on 31 Jan 2020
Edited: Stephen Cobeldick on 31 Jan 2020
You don't need find, it is simpler and more efficient to use logical indexing:
idx = A>1;
x_new = x(idx);
y_new = y(idx);
B_new = B(:,idx);
Lev Mihailov on 31 Jan 2020
The logical indices contain a true value outside of the array bounds.
Error in RawERT20 (line 618)
y_new = y(idx);
Here is an error

### Community Treasure Hunt

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

Start Hunting!

Translated by