Saving a value from matrix B, indexed by matrix A

2 ビュー (過去 30 日間)
sprklspring
sprklspring 2018 年 6 月 8 日
コメント済み: Majid Farzaneh 2018 年 6 月 12 日
Hello all, I have a pretty basic question which causes me problems. I have a 1x100 vector A. Each cell of this vector contains a different number, i.e. A(1,1) = 2010, A(1,2) = 3834, etc. Now, this values of a vector A are indeces, which index a column of vectors contained in all cells of a matrix B; matrix B is an 8x8 cell matrix, and each of its cells contain a 1x4000 vector of numbers. Could you tell me what is your idea of finding values indexed by the vector A in all of the cells of matrix B?
Update from below: all the numbers in 'indeces' vector are supposed to be found in each cell of the 8x8 matrix 'cell', i.e. I expect the output from each cell of the output matrix (the 'What you want' one) to be a vector of 1x132, providing the sample files I attached. Here it seems like I overwrite and save just the 132th value, since the output is just an 8x8 matrix of numbers, instead of 8x8 cell matrix of 1x132 vectors.
  2 件のコメント
James Tursa
James Tursa 2018 年 6 月 8 日
Please provide a short example of inputs and desired output(s) so we are clear what you want.
sprklspring
sprklspring 2018 年 6 月 8 日
Here you can see a sample. In 'indeces' we have 132 values in 1x132 vector. These 132 numbers correspond with columns in 'cells', i.e., value 2781 (1,1 in 'indeces') indicates that the value I need to save is stored under column 2781 in 'cells{1}' - in this case, this number is 9. I have 64 cells in my 'cells' matrix, and I need to perform this search and save for every cell, with all of the numbers indicated in 'indeces'.

サインインしてコメントする。

採用された回答

Majid Farzaneh
Majid Farzaneh 2018 年 6 月 8 日
編集済み: Majid Farzaneh 2018 年 6 月 8 日
Hi, you can use a for loop for B like this:
for i=1:numel(B)
...
end
Then, determine the index by A, like this:
idx=A(1,1); % for example
Get B values like this:
What_you_want(i)=B{i}(idx)
  1 件のコメント
Majid Farzaneh
Majid Farzaneh 2018 年 6 月 8 日
for i=1:numel(B)
idx=A(1,1); % for example
What_you_want(i)=B{i}(idx)
end
At the end you have 64 values in What_you_want matrix for 64 cells in B.

サインインしてコメントする。

その他の回答 (1 件)

sprklspring
sprklspring 2018 年 6 月 11 日
Thanks Majid! You helped a lot, it's just one questions keeps bugging me: all the numbers in 'indeces' vector are supposed to be found in each cell of the 8x8 matrix 'cell', i.e. I expect the output from each cell of the output matrix (the 'What you want' one) to be a vector of 1x132, providing the sample files I attached. Here it seems like I overwrite and save just the 132th value, since the output is just an 8x8 matrix of numbers, instead of 8x8 cell matrix of 1x132 vectors. Do you know what I mean?
  4 件のコメント
sprklspring
sprklspring 2018 年 6 月 12 日
Hi Majid, I got what I wanted. Thanks for your help!
Majid Farzaneh
Majid Farzaneh 2018 年 6 月 12 日
You're welcome

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by