Apply the same matrix index to another matrix (bootstrap for matrix processes)
Show older comments
Hello,
I have a matrix index INDICES (t=173;k=30) I want to apply to the second column of a matrix X (t=173;k=6)
I have tried data=X(2,indices) but it doesn't work. When I code data=X(indices) I have my new matrix but with the index applied to the first column of X. The output is a data matrix (t=173;k;30) but with column data from the first column of X only
If possible I would like to get as an output the matrix where the index matrix is applied to all column (a matrix t=173; k=30*6)
I think it is simple, but I can't find the solution.
Thank you
12 Comments
Matt J
on 9 Oct 2021
What is t and k?
Ben Ked
on 9 Oct 2021
Ben Ked
on 9 Oct 2021
David Hill
on 9 Oct 2021
I have no idea what you want to do. Why not provide a simple example. How are you applying indices to X? Is it just a simple substitution or are you applying some sort of equation.
David Hill
on 9 Oct 2021
Example? Show a sample data set and what your expected output would be.
David Hill
on 9 Oct 2021
How are you want it applied? I still don't understand.
Image Analyst
on 9 Oct 2021
Again, people are waiting for an example. Can you give a small example, like with only 10 rows of the two input matrices, and the desired output matrix right here in your message (not in a .mat file so we can see it here immediately). We may just give up trying to help if you continue to not provide an example here of the output you want. Sorry, but it's confusing, not just to me but to all others also.
Examples of confusion:
"I want to apply to the second column of a matrix X" What the heck does that mean? "Apply"????
I'm sure once you provide a simple example it will get answered quickly.
Matt J
on 10 Oct 2021
Ben Ked's comment moved here:
Here an example:
data =
5 (z)
6 (p)
7 (r)
x =
7 3 (z)
6 9 (p)
2 4 (r)
indices =
2 (p) 1 2
3 (r) 2 1
1 (z) 3 3
vector = [data x]
% (p) = 2 because it corresponds to position row2 of each column
g = vector(indices)
% g Output desired : indices give the position to pick in each matrix/vector
6 6 9 (p) 5 7 3 6 6 9
7 2 4 (r) 6 6 9 5 7 3
5 7 3 (z) 7 2 4 7 2 4
Accepted Answer
More Answers (2)
I want to apply to the second column of a matrix X (t=173;k=6)...I have tried data=X(2,indices) but it doesn't work
You seem to have columns and rows mixed up. You should have,
data=X(indices,2)
David Hill
on 9 Oct 2021
g=[];
[a,b]=size(indices);
for k=1:b
g=[g,vector(repmat(indices(:,k),1,b)+[0:a:(b-1)*a])];
end
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!