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!