# How to replace elements of matrix by elemts from array

1 view (last 30 days)
Dmitry Timofeev on 27 Dec 2019
Answered: Andrei Bobrov on 27 Dec 2019
k = 8;
x = 1:2500; % array
h = 1:257;
newV = (0:length(x)-1).'*k+h;% matrix of indices
I have created matrix of indices, wich contains indexes of array x. Now I want to replace all elements of matrix by elemts from array x.
It should like this:
NewV = [x (1) x (2) x(3) ... ; x(9)... ; x(17)... ; x(25)... ]

Akira Agata on 27 Dec 2019
Basically, this task can be done by:
NewV = reshape(x,8,[])';
But in your case, length(x) can NOT be devided by k (=8). So you should adjust length(x) by padding/removing some elements.
##### 2 CommentsShowHide 1 older comment
Dmitry Timofeev on 27 Dec 2019
Edited: Dmitry Timofeev on 27 Dec 2019
I've changed size of matrix 'newV'
clear; clc;
v = 1:257;
n = 100;
k = 8;
x = 1:2500;
h = 1:257;
n = length(1:8:length(x)-length(h));
NewV = (0:n-1).'*k + v;
NewV = reshape(x,8,[])';
But It still doesn't work.
How I should replace elements from array 'NewV' in this method:
NewV = [x (1) x (2) x(3) ... x(257); x(9)...x(265) ; x(17)... x(273); x(25)...x(281) ]
?

Andrei Bobrov on 27 Dec 2019
out = x(NewV);

### Categories

Find more on Cell Arrays in Help Center and File Exchange

R2019b

### Community Treasure Hunt

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

Start Hunting!