Apply the same matrix index to another matrix (bootstrap for matrix processes)
显示 更早的评论
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 个评论
Matt J
2021-10-9
What is t and k?
Ben Ked
2021-10-9
Ben Ked
2021-10-9
David Hill
2021-10-9
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
2021-10-9
Example? Show a sample data set and what your expected output would be.
David Hill
2021-10-9
How are you want it applied? I still don't understand.
Image Analyst
2021-10-9
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
2021-10-10
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
采纳的回答
更多回答(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
2021-10-9
g=[];
[a,b]=size(indices);
for k=1:b
g=[g,vector(repmat(indices(:,k),1,b)+[0:a:(b-1)*a])];
end
类别
在 帮助中心 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!