Hi everyone! I need help!
1 回表示 (過去 30 日間)
古いコメントを表示
I need to get the probability of every element in a 3D matrix (Mat) which is 83x92x80
% code
%
[r, c, t] = size(Mat);
y = zeros(r,c,t);
p = zeros(r,c,t);
for i = 1:c;
for j = 1:r;
for k=1:t;
y(j,i,k) = sum(Mat (:,:,[k]) == Mat(j,i,k));
p(j,i,k) = y(j,i,k)/80;
end
end
end
First, I am getting an error “Assignment has more non-singleton rhs dimensions than non-singleton subscripts”. Second, I am not quite sure if this is how I should do what I want to do. I really appreciate your help.
Many thanks
Endaw
3 件のコメント
Bob Thompson
2018 年 4 月 9 日
The error occurs because your code is trying to fit a three dimensional array, created by the sum() command, into a single element. If you're looking for the total summation, James suggested a decent solution.
回答 (2 件)
James Tursa
2018 年 4 月 9 日
Maybe adding another sum gets the result you want?
y(j,i,k) = sum(sum(Mat (:,:,[k]) == Mat(j,i,k)));
3 件のコメント
James Tursa
2018 年 4 月 10 日
OK, at this point I think we need an example to understand what it is you want. Can you show us a sample small sized array, say 2x3x4, and show us this array and also show us the exact desired output for this array?
Steven Lord
2018 年 4 月 10 日
Are you trying to compute the histogram of the elements in that array? If so take a look at the histogram function (or the histcounts function if you just need the counts without the picture.)
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!