replacing rows with values from another matrix
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
caroline bourn
el 14 de Mzo. de 2021
Comentada: caroline bourn
el 17 de Mzo. de 2021
Hi,
i have 1 3625 x 1 matrix. i have used the following code to flip values based on an index. It gives me a matrix of 1185x1. (as expected)
next =1;
% figure out origin and flip the x and y axis accordingly
for i=1: length(pts)
x_values = flip(x(next:pts(i))) % this finds the walks that start at the other side of origin
next=pts(i);
end
this gives me the output i expect.
now where i am having trouble is with replacing the values in my previous matrix with these new values....
pts is 1250, 2434, 3624.
the new matrix x_values is from pts 1250 - 2434.
2 comentarios
David Hill
el 15 de Mzo. de 2021
Not enough information to help. Showing sample of input and expected output would help. Your loop is over-riding x_values during each cycle of the loop. What does the pts() array look like?
Respuesta aceptada
ANKUR KUMAR
el 16 de Mzo. de 2021
Since you have not attached any speciific data, I am generating random values and indices to change.
clc
clear
original_mat=randi(20,1,100);
new_mat=randi(20,1,30);
index_to_change=45:74;
original_mat(index_to_change)=new_mat;
Hope this helps.
3 comentarios
ANKUR KUMAR
el 17 de Mzo. de 2021
clc
clear
[~, ~, raw] = xlsread('expected.xlsx','Sheet1','C1:D3624');
raw(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),raw)) = {''};
cellVectors = raw(:,2);
raw = raw(:,1);
data = reshape([raw{:}],size(raw));
original_mat = data(:,1);
new_mat = cellVectors(:,1);
clearvars data raw cellVectors;
replace_index=cellfun(@(x) ~isempty(x) & isnumeric(x), new_mat);
original_mat(replace_index)=cell2mat(new_mat(replace_index));
updated_matrix=original_mat;
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!