From: Ramita S. on 15 Jan 2010 02:25 Hello, I'm hoping somebody with MATLAB expertise could tell me what the following error message mean and/or how to avoid it. "??? Colon operands must be in range of the data type." It occurs at the line: 82: on_ind(z) = find( U_GK(off_ind(z-1):end)>=7 ,1,'first') + off_ind(z-1)-1; where U_GK(off_ind(z-1):end) when singled out seems to be the crux of the problem, with U_GK [85000x1 double] off_ind [1x1 uint16] in this iteration z [1x1 unint16] = 2 in this iteration What stumps me is that the whole line 82 was copied directly from another function I've worked on, which runs fine with no warning/error in another set of input data with similar Workspace and structure (though U_GK dimension is [8500x1]) Moreover, I've tried the following steps in Command Window in debug mode: K>> z ans = 2 K>> off_ind(z-1) ans = 6011 K>> U_GK(off_ind(z-1)) ans = 5.4571 K>> U_GK(end) ans = 0.0078 K>> U_GK(6011:end) ans = [78990x1 double with 5.4571 as the first element and 0.0078 as the last] Setting an intermediate variable for off_ind or using eval() didn't solve the problem either. My coding is definitely far from efficient or elegant, so I'd be grateful for any advice to improve and/or eliminate the error. Thank you in advance :) Ramita
From: Rune Allnor on 15 Jan 2010 03:47 On 15 Jan, 08:25, "Ramita S." <rsuteek...(a)gmail.com> wrote: > Hello, > > I'm hoping somebody with MATLAB expertise could tell me what the following error message mean and/or how to avoid it. > > "??? Colon operands must be in range of the data type." > z [1x1 unint16] = 2 in this iteration The problem is that you are using data of type UINT16. A 16-bit integer can only represent 2^16 = 65536 different numbers. If you want to represent larger integer values, you will have to use some other data type. Rune
|
Pages: 1 Prev: how to get a count data for each group Next: Plot multiple bars with standard deviation |