使用matlab通过函数传递结构数组
我正在用MATLAB进行图像处理。我有一个问题,我们搜索一个像素的3x3邻域。如果有两个或更多的邻居,那么我们将邻居的数量和像素坐标存储在一个结构中。问题是我无法将此结构传递给调用函数。我的结构如下:使用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
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
相同的字段。。。。我不知道它为什么会起作用,但肯定会让人困惑。那就去看看新的东西吧。令人惊叹的!