检查矩阵的大小会导致错误

时间:2016-01-18 08:53:22

标签: matlab matrix

错误:

  

下标索引必须是实数正整数或逻辑。

嗨我正在进行图像转换,检查矩阵的大小时出错。我很困惑为什么我使用代码获取此特定实例:

size(maleGrey)

以下是我正在运行的代码:

male = getAllFiles('male');

% Variable Initialization
size = 250*250;
numM = length(male);
maleGrey = zeros(size,numM);

% Convert to gray scale
for i = 1:numM
   rgb = imread(char(male(i)));
   img = single(rgb2gray(rgb));
   vec = img(:); % make it a vector of (62500,1) in size
   maleGrey(:,i) = vec; 
end

2 个答案:

答案 0 :(得分:3)

在调用$("#movetotab3").click(function() { $("#vartabs").tabs("option", "active", 2); }); 时,您错误地将size用作变量。在工作空间中执行此操作后,该函数将被变量屏蔽(重载),并且Matlab将始终将对size=250*250的进一步调用视为对变量的操作。

调用size,该功能将按预期工作。另外,请勿使用clear size作为变量的名称(或其他函数名称,如sizelengthdouble等),但例如zerossiz(因为那是你变量所代表的含义)。

答案 1 :(得分:0)

您通过变量名覆盖(本地)Matlabs本机函数引用size

% Variable Initialization
size = 250*250; % <--

因此,当您致电size(maleGrey)时,它会将maleGrey视为变量size中的索引。