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
使用matlab通过函数传递结构数组_Matlab - Fatal编程技术网

使用matlab通过函数传递结构数组

使用matlab通过函数传递结构数组,matlab,Matlab,我正在用MATLAB进行图像处理。我有一个问题,我们搜索一个像素的3x3邻域。如果有两个或更多的邻居,那么我们将邻居的数量和像素坐标存储在一个结构中。问题是我无法将此结构传递给调用函数。我的结构如下: pixel=struct('count',{},'x',{},'y',{}); struct pixel p[]={}; for x=2:size(PEI,1)-1 for y=2:size(PEI,2)-1 if(PEI(x,y)==1) p

我正在用MATLAB进行图像处理。我有一个问题,我们搜索一个像素的3x3邻域。如果有两个或更多的邻居,那么我们将邻居的数量和像素坐标存储在一个结构中。问题是我无法将此结构传递给调用函数。我的结构如下:

pixel=struct('count',{},'x',{},'y',{});

struct pixel p[]={};

for x=2:size(PEI,1)-1

   for y=2:size(PEI,2)-1

       if(PEI(x,y)==1)

            p=windowmod(x,y);
       end

   end

end
然后我声明一个函数:

function [p]=windowmod(x1,y1)
运行代码时,出现以下错误:

??? Output argument "p" (and maybe others) not assigned during call to
"C:\Users\Prajnya\Desktop\IP programs\windowmod.m>windowmod".

    Error in ==> step5modified at 17
               p=windowmod(x,y);

我不明白这个错误是什么意思。如果有人能帮我完成此功能,我将不胜感激。

请为
windowmod
发布您的代码。没有它,我们无法准确地诊断出什么地方出了问题。然而,这个错误是非常明显的。您需要查看您的
windowmod
函数,确保完成后返回
p
。您之所以会出现此错误,是因为在完成
windowmod
@rayryeng是否正确时,
p
不会返回。windowmod函数中从未分配值p,这可能是因为它在循环或if语句中无法达到,或者根本不存在。此外,它看起来像是在单个代码块中混合了c和matlab语法。@Juderb-这很有趣。第二行代码实际上是有效的。我刚才试过了。它只是创建一个空结构,该结构具有与
pixel
相同的字段。。。。我不知道它为什么会起作用,但肯定会让人困惑。那就去看看新的东西吧。令人惊叹的!