replacing rows with values from another matrix
1 view (last 30 days)
Show older comments
caroline bourn
on 14 Mar 2021
Commented: caroline bourn
on 17 Mar 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 Comments
David Hill
on 15 Mar 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?
Accepted Answer
ANKUR KUMAR
on 16 Mar 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 Comments
ANKUR KUMAR
on 17 Mar 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;
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!