フィルターのクリア

Link corresponding elements of two matrices of the same dimension

2 ビュー (過去 30 日間)
jasmine
jasmine 2019 年 1 月 9 日
コメント済み: Adam 2019 年 1 月 9 日
I have two different fields in the same structure, each of them containing 1 column table with multiple rows (but same number of rows for both of them), in a mat file. Each tabel contains data from a lab experiment, each row represents a different trial, and each cell of the table is from the same trial as the corresponding one in the other table. How can I link each cell of the first table with its corresponding one in the second table in a program, so I can do something like this: Count how many times the value of the element in one of the rows of the first table is x and its corresponding value in the second table is y.
  3 件のコメント
jasmine
jasmine 2019 年 1 月 9 日
No, I can do that. But the following part is my problem.
madhan ravi
madhan ravi 2019 年 1 月 9 日
can you upload your sample file?

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

回答 (1 件)

Adam
Adam 2019 年 1 月 9 日
I never use tables myself, but something like the following should work fine:
t = table( randi(10, 20, 1 ), randi(10, 20, 1 ) );
f = @(x,y) x == 7 && y == 9
numOccurences = sum( table2array( rowfun( f, t ) ) );
In your case you would already have your table with 2 columns of you arrange it that way instead of two distinct tables. I just created one as an example. Likewise I just put 7 and 9 as example numbers for x and y.
If you want to count all occurrences of all combinations it is more complicated, but that isn't what you asked for so this works for a given x and y.
  3 件のコメント
jasmine
jasmine 2019 年 1 月 9 日
A = blk.visDiff(:,1);
B = blk.responseMade(:,1);
% these 2 are my matrices (or could be merged as 1 with 2 columns)
And I want to count for each element of A the number of times the corresponding element in B is 1, and than divide the number calculated by the total times when A is equal to each specific value.
For example:
calculate how many times A = 100 and B = 1 --> and then divide this number by the number of times A = 100
I always need to calculate this for B=1, but for multiple values of A
Adam
Adam 2019 年 1 月 9 日
If you are using a sufficiently up to date version of Matlab you can convert them to tables using
doc array2table
I assumed you meant you already had your data in tables. You can do it with a matrix too of course, it is just a bit less neat since there is no functionality (like rowfun above) to automatically apply a function to rows of a matrix, at least not that I am aware of.

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

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by