In an assignment A(:) = B, the number of elements in A and B must be the same.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Does anybody help me with this error?
I have this error:
In an assignment A(:) = B, the number of elements in A and B must be the same.
Error in bor_getIndexesRange (line 13)
indexes(2) = find(abs(data.(field) - rangeLimits(2)) < tolerance);
Here is the code:
function [ indexes ] = bor_getIndexesRange(data, rangeLimits, field)
% field = {'time'} or field = {'freq'}
indexes = [-1 -1];
% Tolerance in order to fix float points numbers comparision issues
if strcmp(field, 'time')
tolerance = 0.001;
elseif strcmp(field, 'freq')
tolerance = 0.2;
end
indexes(1) = find(abs(data.(field) - rangeLimits(1)) < tolerance);
indexes(2) = find(abs(data.(field) - rangeLimits(2)) < tolerance);
assert(~isempty(indexes(1)));
assert(indexes(1) > 0);
assert(~isempty(indexes(2)));
assert(indexes(2) > 0);
end
0 Kommentare
Antworten (1)
Steven Lord
am 15 Jul. 2021
indexes(1) = find(abs(data.(field) - rangeLimits(1)) < tolerance);
indexes(2) = find(abs(data.(field) - rangeLimits(2)) < tolerance);
These lines assume that there is exactly one, no more and no fewer, elements of the array that are less than the tolerance. If that assumption is violated (if multiple elements are within tolerance of the limits or if no elements are), those lines will error.
It's as though I asked you for one of the numbers in the vector [1 2 3 4 5] that is greater than 42. As Cleve Moler said, "The hardest things to compute are things that do not exist."
assert(~isempty(indexes(1)));
indexes(1) is a 1-by-1 array. By the definition of isempty it cannot be empty and so there is no way for this assert call to fail (unless you change the definition of the ~ operator, the isempty function, or what indexing means for the indices array.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!