请教高手
Output returned by S-function 'getfile' in 'sumwe/S-Function' during flag=3 call must be a real vector of length 1.这是什么问题?我想对于S_function中对于矩阵进行操作,提示这样的错误。回复 #1 sank 的帖子
把程序传上来,这样说没有什么信息,呵呵 这是程序。 刚才没传上,不好意思。function = getfile(t,x,u,flag)switch flag
case 0
=mdlInitializeSizes; case 3sys=mdlOutputs(t,x,u); case {1,2,4,9}
sys=[];
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end function =mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates
= 0;sizes.NumDiscStates
= 0;sizes.NumOutputs
= 1;sizes.NumInputs
= 0;sizes.DirFeedthrough = 1;sizes.NumSampleTimes = 1;
% at least one sample time is needed
sys = simsizes(sizes); x0
= [];
str = []; ts
= [-1 0]; function sys=mdlOutputs(t,x,u)%a=1;%b=2;filename=('C:\Program Files\MATLAB\R2006b\work\simulink\102_7.tif');I=imread(filename);M=double(I);sys =M;
% end mdlOutputs
[ 本帖最后由 cdwxg 于 2007-5-25 10:34 编辑 ] sizes.NumInputs
= 0;
没有输入?
function sys=mdlOutputs(t,x,u)
%a=1;
%b=2;
filename=('C:\Program Files\MATLAB\R2006b\work\simulink\102_7.tif');
I=imread(filename);
M=double(I);
sys =M;
filename是个m文件吧?
Output must be a real vector of length 1,就是output这里的问题
请问你imread的文件是什么?
PS:以后程序类的不要上传附件,直接粘贴到帖子上发表就行,已经给你更改。 我想从当前目录下读出一幅图片的数据,filename是文件的路径。 一个图片为I?M=double(I);
这个用法可以用么?
回复 #6 sank 的帖子
你读出的数据长度应该不是1吧,上次好像看到输出数据长度设置为-1的话长度是适时变化的,你这样试试呢? 对啊,输出长度不是1,但不知在哪设置输出长度,谢谢。回复 #7 cdwxg 的帖子
这样可以的,只是从图片读出的是矩阵。谢谢你。
页:
[1]