Hi everyone! I need help!
Afficher commentaires plus anciens
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 commentaires
Bob Thompson
le 9 Avr 2018
Which line generates the error? Please write the line or copy paste the entire error message.
Engdaw Chane
le 9 Avr 2018
Bob Thompson
le 9 Avr 2018
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.
Réponses (2)
James Tursa
le 9 Avr 2018
Maybe adding another sum gets the result you want?
y(j,i,k) = sum(sum(Mat (:,:,[k]) == Mat(j,i,k)));
3 commentaires
Engdaw Chane
le 10 Avr 2018
Modifié(e) : Engdaw Chane
le 10 Avr 2018
James Tursa
le 10 Avr 2018
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?
Engdaw Chane
le 11 Avr 2018
Steven Lord
le 10 Avr 2018
0 votes
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.)
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!