MATLAB Answers


matrix contain index track

Asked by Mingcheng Tsai on 10 Oct 2019
Latest activity Commented on by thoughtGarden on 10 Oct 2019
Hi, all.
Is it possible to put a matrix with a index array in matlab
like and after some operations, I would like to have
which is a incresing matrix.
Thank you so much


Sign in to comment.

2 Answers

Answer by thoughtGarden on 10 Oct 2019
 Accepted Answer

The only way I'm aware of you have arrays within another indexed structure is to use cells. I'm not sure exactly what you are trying to do, but something like this should get you started:
I{1,1} = [1,3];
I{2,1} = [2,3];
I{1,2} = [1,4];
I{2,2} = [2,4];
This builds your initial cell array. Do what you want after that. Note that when using cells, the individual arrays are not linked by any means, so they can be different sizes and contain completely different data. You will have to control how each array grows and changes.


Thank you for the answer.
I think cell is the only choice for me if I have a unfixed matrix operation.
If you found this answer to be correct, please accept it. Otherwise, please add aditional comments so that it may be improved.

Sign in to comment.

Answer by Bjorn Gustavsson on 10 Oct 2019

I = [1, 3, 1, 4;
2, 3, 2, 4];
% Then operate away...
But it is very unclear if that is what you really want. Does your grouping in the matrixes indicate that you have some meaning with (1,3) (1,4) (2,3) and (2,4) as pairs of indices? If so you might want to make the matrix a 3-D array:
I(:,:,2) = [3,4;
I(:,:,1) = [1,1;
2 2];
Then you could potentially grow that array in in the third dimension as you go along - which you seem to indicate with your second array I where you have the elements grouped in triplets?
If you need to go completely arbitrary with varying length of index-lists, cell-arrays might give you a solution:
I{1,1} = [1,3];
I{1,2} = [1,4];
I{2,1} = [2,3];
I{2,2} = [1 4 3 576 1]; % For example

  1 Comment

Thank you so much and I will consider the method of cell array.

Sign in to comment.