Help with error in Matlab
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
FRANCISCO
am 15 Dez. 2013
Kommentiert: Walter Roberson
am 15 Dez. 2013
I have a cell named "r2" which has 2 rows and 1 column:
r2 {1,1} = 1046 x 1
r2 {2,1} = 1045 x 1
When analyzing the number of repetitions in a cell how in the following example:
r2 = {[1, 4, 3, 1], [2, 2, 3]};
I should have results:
r3 = {[1 2, 2 0, 3; 1 4 1], [1 0, 2; 2 3 1]};
In applying the code:
if true
% code
r2 = {[1, 4, 3, 1]; [2, 2, 3]};
r3 = cellfun (@ (x) [(1: máx (x)) ', accumArray (x (:), 1) ], r2, 'un', 0);
end
Matlab gives me the error:
*"Error using accumarray
First input SUBS must contain positive integer subscripts.
Error in @(x)[(1:max(x))',accumarray(x(:),1)]"*
How I can fix it?
Many thanks
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 15 Dez. 2013
invalid_entries = cellfun( @(x) x(x <= 0 | mod(x,1) ~= 0), r2, 'Uniform', 0);
Use that to find out which values are not positive integers.
4 Kommentare
Walter Roberson
am 15 Dez. 2013
r3 = cellfun (@ (x) [(0: máx (x)) ', accumArray (x (:) + 1, 1) ], r2, 'un', 0);
Notice the +1 added to the x(:) so that 0 becomes index 1, 1 becomes index 2, and so on.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Structures finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!