Index a v dimensional matrix from a matrix with v columns and n rows

1 次查看(过去 30 天)
Hello all,
I a have u row and n column matrix, say p, in which I want to store some data. I also have a matrix ind which has per each row the indices that I need in order to write to.
For example let me se the dimension to n=2 and supposing I want to write to position ind(1,:) of P I have:
ind = [1,2;2,6];
p(sub2ind([size(p,1),size(p,2)],ind(1,1),ind(1,1))) = datum; % Ican easly loop to handle more data
While this works I am not clear how to address the possibililty of having a 50 column (i.e. n=50) ind matrix as the prototype of subs2ind requires me to specify the indexes on by one.
Does anyone know how to deal with such scenario?

回答(1 个)

madhan ravi
madhan ravi 2020-9-30
p(sub2ind(size(p), ind(:, 1), ind(:, 2)) = Dayum % where RHS should be equal to size(ind)
  4 个评论
Jpk
Jpk 2020-9-30
编辑:Jpk 2020-9-30
You have to excuse me - I was not paying enough attention both in writing my question or in my reply. I will edit the question soon but allow me to reformulate.
Consider ind a t row and n column matrix of indices.
My goal is to use for each row of ind an index for a specific dimension of p. Of course n is know ahead of time.
eg.
ind = [1,2,4;2,6,5];
p( sub2ind(size(p),ind(1,1),ind(1,2),ind(1,3)) ) = datum; % in this case n=3
if n=4
ind = [1,2,4,5;2,6,5,9];
p( sub2ind(size(p),ind(1,1),ind(1,2),ind(1,3),ind(1,4)) ) = datum; % in this case n=4
In other words the kth colum of ind contains the indices for the kth dimension of p.
madhan ravi
madhan ravi 2020-9-30
编辑:madhan ravi 2020-9-30
for k = 1 : size(ind, 1)
I = num2cell(ind(k, :))
p(sub2ind(size(p), I{ : }))= datum;
end

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by