Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 图像处理(Matlab):索引超过矩阵维数_Image_Matlab_Image Processing - Fatal编程技术网

Image 图像处理(Matlab):索引超过矩阵维数

Image 图像处理(Matlab):索引超过矩阵维数,image,matlab,image-processing,Image,Matlab,Image Processing,嗯,我对matlab编程是新手,我一直在与索引问题作斗争。我目前正在从事图像处理工作,到目前为止这让我发疯。无论如何,让我们跳到问题上来。 我有以下代码 perm=randperm(size(X,2)); CX=X(:,perm(1:nclus)); 我试图运行代码,但它触发了一个错误,说“索引超过了矩阵维度。据我所知,我认为这是因为(:,perm(1:nclus))高于矩阵维度。我想知道如何解决这个问题 请注意,X:是列中的输入点 NCLU:集群的数量 如果你们能向我澄清错误原因和可能的解决

嗯,我对matlab编程是新手,我一直在与索引问题作斗争。我目前正在从事图像处理工作,到目前为止这让我发疯。无论如何,让我们跳到问题上来。 我有以下代码

perm=randperm(size(X,2));
CX=X(:,perm(1:nclus));
我试图运行代码,但它触发了一个错误,说“索引超过了矩阵维度。据我所知,我认为这是因为
(:,perm(1:nclus))
高于矩阵维度。我想知道如何解决这个问题

请注意,X:是列中的输入点 NCLU:集群的数量

如果你们能向我澄清错误原因和可能的解决方案,我将不胜感激

多谢各位


Sami

假设您只想从二维矩阵
X
中获取
nclus
随机列,请尝试以下操作:

perm=randperm(size(X,2));
CX=X(:,perm<=nclus);

您如何定义X的大小?例如,X矩阵中的列数是多少?您到底想实现什么?Danil,X是图像中用作训练数据的列中的输入点。您确定NCLU是群集数小于或等于二维矩阵(X)的大小吗谢谢DennisDennis,谢谢你,你真的明白我的意思了,但是如果你有时间的话,你能简单地向我解释一下为什么它超过了矩阵维数。我只是想知道一个不同的观点。谢谢you@user2040072我更新了我的答案,猜测问题是什么,如果不是这个,请在错误发生。您的第一个答案非常有效。我没有解释错误发生的原因,但感谢您给出了精确的解释。但是,我遇到了这个问题。“未定义的函数或方法'vgg_kmiter'用于'double'类型的输入参数。”。是因为输入参数被定义为整数吗?还是这个什么的behind@user2040072这不在这个问题的范围之内,但是你当然可以问一个单独的问题。只需确保尝试并包含相关信息。
perm = randperm(size(X,2)); %Should be ok
idx = perm(1:nclus); %Probably fails
X(:,idx)