关于函数输出值个数nargout的问题

用matlab定义一个函数 其功能是画二维罗圈线 用到了可变输入输出变量 但是我不明白画图函数为什么会有函数输出值 而且还能取到0、1或是其他不同的值。
function spir_len = spirallength(d, n, lcolor)
% SPIRALLENGTH plot a circle of radius as r in the provided color and calculate its area
% 输入参数:
% d: 螺旋的旋距
% n: 螺旋的圈数
% lcolor:画图线的颜色
% 输出参数:
% spir_len:螺旋的周长
% 调用说明:
% spirallength(d,n):以参数d,n画螺旋线,螺旋线默认为蓝色
% spirallength(d,n,lcolor):以参数d,n,lcolor画螺旋线
% spir_len = spirallength(d,n):计算螺旋线的周长,并以蓝色填充螺旋线
% spir_len = spirallength(d,n,lcolor):计算螺旋线的周长,并以lcolor颜色填充螺旋线

% 版本号V1.0,编写于1999年9月9号,修改于1999年9月10号,作者:亚索

if nargin > 3
error('输入变量过多!');
elseif nargin == 2
lcolor = 'b'; % 默认情况下为蓝色
end

j = sqrt(-1);
phi = 0 : pi/1000 : n*2*pi;
amp = 0 : d/2000 : n*d;
spir = amp .* exp(j*phi);

if nargout == 1
spir_len = sum(abs(diff(spir)));
fill(real(spir), imag(spir), lcolor);
elseif nargout == 0
plot(spir, lcolor);
else
error('输出变量过多!');
end

axis('square');


相关文章链接附上如何规范地编写一个MATLAB函数文件 - GQ - CSDN博客 https://blog.csdn.net/qq_15971883/article/details/82884353

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Qt Creator + matlab 混合编程处理肌电信号
最近在做有关肌电方面的项目,通过两个传感器分别获取面部左右咬合肌的肌电信号,目前卡在信号降噪这个步骤上了。。 因为信号是通过qt获取的,打算将获取到的信号传入Matlab中,通过matlab程序进行降噪处理后再传回qt creator中。 **第一个小疑问:** ``` extern LIB_denoising_CPP_API void MW_CALL_CONV denoising(int nargout, mwArray& denoi_signal, const mwArray& signal); ``` qt中实时获取的肌电信号是存在QList中的。denoising函数即为Matlab中的降噪函数,denoi_signal和signal分别为处理后传出至qt中的信号和从qt中传入的处理前的信号。但是 denoi_signal 传回时为mwArray格式,有没有什么办法可以将其转为原始信号的QList格式? **第二个小疑问:** 如果不能转为QList格式的话,可不可以将qt获取到的信号值一个一个传至matlab?但是我用的小波降噪函数wden, ``` denoi_signal = wden(signal, 'minimaxi', 's', 'mln', 5, 'sym9'); ``` 其传入的参数signal为一段信号值而不是一个值,那我如果一个一个值传入matlab的话是不是就没有办法进行降噪处理了。。 跪求大佬解答。。自己摸索了好几天了实在是想不出什么方法。。 没有币还望大佬能解答一下TAT...
自制的简易Matlab GUI串口通信助手存在问题,edit无法实时显示接受的信息!
# 1.我仿照罗飞华老师的串口通信助手自己做了个简易的串口通信助手,作为单片机的上位机来用,可是显示界面的edit控件只能显示三行字符串,其他的无法实时显示。我一直以为我模仿的有问题,可奇怪的是,我用罗老师的串口助手也只能显示这三行。以下是我用stc官方的串口通信助手的演示: 先输入半径10 ![图片说明](https://img-ask.csdn.net/upload/201805/12/1526092615_809913.png) 再输入目的坐标(6,8,10) ![图片说明](https://img-ask.csdn.net/upload/201805/12/1526092628_458191.png) ![图片说明](https://img-ask.csdn.net/upload/201805/12/1526092641_712375.png) ![图片说明](https://img-ask.csdn.net/upload/201805/12/1526092655_517809.png) ## 可以看出程序可以很好的运行,并实时输出xyz坐标反馈给串口助手。而用matlab gui做的串口助手我实行了简化,将串口直接定成com4,波特率直接定成9600,省去了什么hex模式发送什么周期自动发送啥的,结果如下: ![图片说明](https://img-ask.csdn.net/upload/201805/12/1526092887_650142.png) **实际情况是我的程序可以正常运行,即电机可以正常转动,然而,edit控件界面永远只显示这三行,不会再实时显示后面的(X,Y,Z)坐标的变化值。请问这是为什么?** **而且在运行期间matlab程序还爆出了几个错误:** ![图片说明](https://img-ask.csdn.net/upload/201805/12/1526093045_286451.png) **这个错误是什么意思?求大神告诉我,本人刚开始接触matlab GUI部分 以下是我的matlabgui的代码:** ``` function varargout = jiemian(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @jiemian_OpeningFcn, ... 'gui_OutputFcn', @jiemian_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function jiemian_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = jiemian_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; %打开串口按钮 function start_serial_Callback(hObject, eventdata, handles) global scom if get(hObject,'value') scom=serial('com4'); set(scom,'BaudRate',9600,'Parity','none','DataBits',... 8,'StopBits',1,'BytesAvailableFcnCount',100,... 'BytesAvailableFcnMode','byte','BytesAvailableFcn',{@bytes,handles},... 'TimerPeriod',0.01,'timerfcn',{@bytes,handles}) try fopen(scom); catch msgbox('串口不可获得!'); set(hObject, 'value', 0); %弹起本按钮 return end set(handles.xianshi, 'string', ''); %清空接收显示区 set(hObject, 'String', '关闭串口'); %设置本按钮文本为“关闭串口” else t=timerfind; try stop(t); delete(t); end scoms=instrfind; stopasync(scom); fclose(scoms); delete(scoms); set(hObject, 'String', '打开串口'); %设置本按钮文本为“打开串口” end %bytes函数 function bytes(obj,eventdata,handles) n=get(obj,'BytesAvailable'); if n a=fread(obj,n,'uchar'); c=char(a'); set(handles.xianshi,'string',[get(handles.xianshi,'string') c]) set(handles.rec,'string',num2str(str2num(get(handles.rec,'string'))+length(c))) end %清空接收区按钮 function qingkong_Callback(hObject, eventdata, handles) set(handles.xianshi,'string','') %清空发送区按钮 function pushbutton1_Callback(hObject, eventdata, handles) set(handles.sends,'string','') % 发送按钮 function manual_send_Callback(hObject, eventdata, handles) global scom str=get(handles.sends,'string'); val=double(str); set(handles.trans,'string',num2str(str2num(get(handles.trans,'string'))+length(str2num(str)))) if ~isempty(val) try str=get(scom,'TransferStatus'); catch return end while 1 if ~(strcmp(str, 'write')||strcmp(str,'read&write')) fwrite(scom,val,'uint8','async'); break end end end %发送区文本显示回调函数 function sends_Callback(hObject, eventdata, handles) function sends_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end %接收区文本显示回调函数 function xianshi_Callback(hObject, eventdata, handles) function xianshi_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end %清空计数按钮 function pushbutton2_Callback(hObject, eventdata, handles) set([handles.rec,handles.trans],'string','0') ``` ## 附带用罗老师的gui串口助手也只能显示这三行,和我的情况一样,这个是edit的问题还是编程的问题? ![图片说明](https://img-ask.csdn.net/upload/201805/12/1526093710_114556.png)
VS2010调用matlab生成的dll, 头文件里面只有对C_API,没有对CPP_API的声明?
想要的是这种声明:extern LIB_mysvd_CPP_API void MW_CALL_CONV mysvd(int nargout, mwArray& s, mwArray& v, mwArray& d, const mwArray& a); 编译出来的是这种声明:extern LIB_mysvd_C_API void MW_CALL_CONV mlfMysvd(int nargout, mxArray** s, mxArray** v, mxArray** d, const mxArray* a); ifdef __cplusplus
yalmip语句出现引用不存在字段,咋解决
``` 引用了不存在的字段 'used_variables'。 出错 solvesdp_multiple (line 32) model.c = mapObjective(h_variables,model.used_variables,h_base(i,2:end)); 出错 solvesdp (line 17) diagnostic = solvesdp_multiple(varargin{:}); 出错 optimize (line 31) [varargout{1:nargout}] = solvesdp(varargin{:}); 出错 xufan (line 64) optimize(F,p); ```
python调用matlab的问题
# 在matlab运行函数时没有问题,但是用python调用该matlab函数时,出现报错如下。求问有遇到这种情况的吗? ``` import matlab.engine engine = matlab.engine.start_matlab() # Start MATLAB process engine.vl_compilenn label=engine.experi('/13/10.wav') print(label) ``` ``` Attempt to execute SCRIPT vl_nnconv as a function: /usr/local/MATLAB/R2017b/toolbox/MatConvNet/matconvnet-1.0-beta25/matlab/vl_nnconv.m Error in dagnn.Conv/forward (line 12) outputs{1} = vl_nnconv(... Error in dagnn.Layer/forwardAdvanced (line 85) outputs = obj.forward(inputs, {net.params(par).value}) ; Error in dagnn.DagNN/eval (line 91) obj.layers(l).block.forwardAdvanced(obj.layers(l)) ; Error in experi (line 68) dag.eval({'data', gpuArray(inp1)}) ; Traceback (most recent call last): File "/home/affcgroup/affc/Ser/affccompute/mcnCrossModalEmotions-master/emoVoxCeleb/p3.py", line 4, in <module> label=engine.experi('/home/affcgroup/mustudy/data/lianke/13/10.wav') File "/usr/local/lib/python2.7/dist-packages/matlab/engine/matlabengine.py", line 78, in __call__ _stderr, feval=True).result() File "/usr/local/lib/python2.7/dist-packages/matlab/engine/futureresult.py", line 68, in result return self.__future.result(timeout) File "/usr/local/lib/python2.7/dist-packages/matlab/engine/fevalfuture.py", line 82, in result self._result = pythonengine.getFEvalResult(self._future,self._nargout, None, out=self._out, err=self._err) matlab.engine.MatlabExecutionError: File /home/affcgroup/MatConvNet/matconvnet-1.0-beta25/matlab/+dagnn/Conv.m, line 12, in Conv.forward File /home/affcgroup/MatConvNet/matconvnet-1.0-beta25/matlab/+dagnn/Layer.m, line 85, in Layer.forwardAdvanced File /usr/local/MATLAB/R2017b/toolbox/MatConvNet/matconvnet-1.0-beta25/matlab/+dagnn/@DagNN/eval.m, line 91, in eval File /home/affcgroup/affc/Ser/affccompute/mcnCrossModalEmotions-master/emoVoxCeleb/experi.m, line 68, in experi Attempt to execute SCRIPT vl_nnconv as a function: /usr/local/MATLAB/R2017b/toolbox/MatConvNet/matconvnet-1.0-beta25/matlab/vl_nnconv.m ```
matlab m文件构建成Java 报错不知道是什么错误
m文件内容是: function [sum] = oper(a,b); sum = a + b; end 出错的错误是: 正在构造 Javadoc 信息... 标准 Doclet 版本 1.8.0_40 正在构建所有程序包和类的树... 正在生成C:\Users\Administrator\Documents\MATLAB\oper\for_testing\doc\html\oper\Class1.html... C:\Users\Administrator\Documents\MATLAB\oper\for_testing\oper\Class1.java:110: 警告: args没有 @param public static void main (String[] args) ^ C:\Users\Administrator\Documents\MATLAB\oper\for_testing\oper\Class1.java:60: 警告: com.mathworks.toolbox.javabuilder.MWException没有 @throws public Class1() throws MWException ^ C:\Users\Administrator\Documents\MATLAB\oper\for_testing\oper\Class1.java:89: 警告: com.mathworks.toolbox.javabuilder.MWException没有 @throws public Class1(MWComponentOptions componentOptions) throws MWException ^ C:\Users\Administrator\Documents\MATLAB\oper\for_testing\oper\Class1.java:78: 警告: com.mathworks.toolbox.javabuilder.MWException没有 @throws public Class1(String pathToComponent) throws MWException ^ 正在生成C:\Users\Administrator\Documents\MATLAB\oper\for_testing\doc\html\oper\Class1Remote.html... C:\Users\Administrator\Documents\MATLAB\oper\for_testing\oper\Class1Remote.java:59: 错误: 找不到引用 * @throws java.jmi.RemoteException An error has occurred during the function call or ^ C:\Users\Administrator\Documents\MATLAB\oper\for_testing\oper\Class1Remote.java:62: 警告: java.rmi.RemoteException没有 @throws public Object[] oper(int nargout, Object... rhs) throws RemoteException; ^ C:\Users\Administrator\Documents\MATLAB\oper\for_testing\oper\Class1Remote.java:65: 警告: java.rmi.RemoteException没有 @throws void dispose() throws RemoteException; ^ 正在生成C:\Users\Administrator\Documents\MATLAB\oper\for_testing\doc\html\oper\OperMCRFactory.html... 正在生成C:\Users\Administrator\Documents\MATLAB\oper\for_testing\doc\html\oper\package-frame.html... 正在生成C:\Users\Administrator\Documents\MATLAB\oper\for_testing\doc\html\oper\package-summary.html... C:\Users\Administrator\Documents\MATLAB\oper\for_testing\oper\package-info.java:8: 警告: <p> 标记为空 * <p> ^ C:\Users\Administrator\Documents\MATLAB\oper\for_testing\oper\package-info.java:15: 错误: 意外的结束标记: </p> * </p> ^ C:\Users\Administrator\Documents\MATLAB\oper\for_testing\oper\package-info.java:21: 警告: <p> 标记为空 * <p> ^ C:\Users\Administrator\Documents\MATLAB\oper\for_testing\oper\package-info.java:27: 错误: 意外的结束标记: </p> * </p> ^ 正在生成C:\Users\Administrator\Documents\MATLAB\oper\for_testing\doc\html\oper\package-tree.html... 正在生成C:\Users\Administrator\Documents\MATLAB\oper\for_testing\doc\html\constant-values.html... 正在构建所有程序包和类的索引... 正在生成C:\Users\Administrator\Documents\MATLAB\oper\for_testing\doc\html\overview-tree.html... 正在生成C:\Users\Administrator\Documents\MATLAB\oper\for_testing\doc\html\index-all.html... 正在生成C:\Users\Administrator\Documents\MATLAB\oper\for_testing\doc\html\deprecated-list.html... 正在构建所有类的索引... 正在生成C:\Users\Administrator\Documents\MATLAB\oper\for_testing\doc\html\allclasses-frame.html... 正在生成C:\Users\Administrator\Documents\MATLAB\oper\for_testing\doc\html\allclasses-noframe.html... 正在生成C:\Users\Administrator\Documents\MATLAB\oper\for_testing\doc\html\index.html... 正在生成C:\Users\Administrator\Documents\MATLAB\oper\for_testing\doc\html\help-doc.html... 3 个错误 8 个警告 Error: An error occurred while shelling out to javadoc (error code = 1). Unable to build executable.
一个实例搞定MATLAB界面编程 pjimage.m 学习中遇到的问题
一开始错误原因是h_pjimage = findobj('Tag','figure_pjimage');这一句寻找没成功,至于为什么不成功我也不清楚。然后我把这一句改成了h_pjimage = findobj(pjimage,'Tag','figure_pjimage');也就是指定在pjimage中寻找,结果用上axes(h_pjimage.axes_dst);又变成引用了不存在的字段 'axes_dst'。 ``` function varargout = im2bw_args(varargin) % IM2BW_ARGS MATLAB code for im2bw_args.fig % IM2BW_ARGS, by itself, creates a new IM2BW_ARGS or raises the existing % singleton*. % % H = IM2BW_ARGS returns the handle to a new IM2BW_ARGS or the handle to % the existing singleton*. % % IM2BW_ARGS('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in IM2BW_ARGS.M with the given input arguments. % % IM2BW_ARGS('Property','Value',...) creates a new IM2BW_ARGS or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before im2bw_args_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to im2bw_args_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help im2bw_args % Last Modified by GUIDE v2.5 21-Apr-2019 19:36:30 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @im2bw_args_OpeningFcn, ... 'gui_OutputFcn', @im2bw_args_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before im2bw_args is made visible. function im2bw_args_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to im2bw_args (see VARARGIN) % Choose default command line output for im2bw_args handles.output = hObject; % Update handles structure guidata(hObject, handles); h_pjimage = findobj(pjimage,'Tag','figure_pjimage'); h_pjimage=guihandles(h_pjimage); setappdata(handles.figure_im2bw,'h_pjimage',h_pjimage); % UIWAIT makes im2bw_args wait for user response (see UIRESUME) % uiwait(handles.figure_im2bw); % --- Outputs from this function are returned to the command line. function varargout = im2bw_args_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on slider movement. function slider_val_Callback(hObject, eventdata, handles) % hObject handle to slider_val (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider val=get(hObject,'Value'); # set(handles.txt_display,'String',num2str(val)); # h_pjimage=getappdata(handles.figure_im2bw,'h_pjimage'); # axes(h_pjimage.axes_dst); # img_src=getappdata(h_pjimage.figure_pjimage,'img_src'); # bw=im2bw(img_src,val); imshow(bw); % --- Executes during object creation, after setting all properties. function slider_val_CreateFcn(hObject, eventdata, handles) % hObject handle to slider_val (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background. if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end ```
matlab 做朴素贝叶斯分类,报错 The data has zero variance.
代码: nb=fitcnb(train_data,train_label); predict_label =predict(nb,test_data); 错误: 错误使用 ClassificationNaiveBayes/fitNonMNDists (line 231) A normal distribution cannot be fit for the combination of class 112 and predictor x1. The data has zero variance. 出错 ClassificationNaiveBayes (line 103) this.DistributionParameters = fitNonMNDists(this); 出错 classreg.learning.FitTemplate/fit (line 258) [varargout{1:nargout}] = this.MakeFitObject(X,Y,W,this.ModelParams,fitArgs{:}); 出错 ClassificationNaiveBayes.fit (line 131) this = fit(temp,X,Y); 出错 fitcnb (line 223) this = ClassificationNaiveBayes.fit(X,Y,varargin{:}); 出错 jueceshu (line 24) nb=fitcnb(train_data,train_label);
MATLAB GUI handles 无法传递?!!
如下,MATLAB GUI handles 完全无法传递,function pushbutton1 完全得不到已经公共化的 PATH, Out 取值,这说明handles 没有传递出去,但到底是为什么?已略去各种注释和无关紧要的语句,方便大神们阅读,小妹跪求大神指点迷津。在 GUI__OpeningFcn 中定义 Global 也没有作用,不知什么原因?10个C币,望大神们不吝赐教。_ function [varargout,handles] = GUI(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @GUI_OpeningFcn, ... 'gui_OutputFcn', @GUI_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function GUI_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles) handles = guidata(hObject); handles.PATH=handles.edit1.String; handles.Out_Address=handles.edit2.String; function varargout = GUI_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; handles.PATH=handles.edit1.String; handles.Out_Address=handles.edit2.String; function edit1_Callback(hObject, eventdata, handles) function edit1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit2_Callback(hObject, eventdata, handles) function edit2_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end handles function pushbutton1_CreateFcn(hObject, eventdata, handles) function pushbutton1_ButtonDownFcn(hObject, eventdata, handles) function pushbutton1_Callback(hObject, eventdata, handles) PATH=handles.PATH Out_Address=handles.Out_Address
MATLAB小波图像去噪运行错误
function varargout = wavlet(varargin) % WAVLET M-file for wavlet.fig % WAVLET, by itself, creates a new WAVLET or raises the existing % singleton*. % % H = WAVLET returns the handle to a new WAVLET or the handle to % the existing singleton*. % % WAVLET('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in WAVLET.M with the given input arguments. % % WAVLET('Property','Value',...) creates a new WAVLET or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before wavlet_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to wavlet_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help wavlet % Last Modified by GUIDE v2.5 21-Jun-2004 11:13:32 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @wavlet_OpeningFcn, ... 'gui_OutputFcn', @wavlet_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin & isstr(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before wavlet is made visible. function wavlet_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to wavlet (see VARARGIN) % Choose default command line output for wavlet handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes wavlet wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = wavlet_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global pp; pp=str2double(get(hObject,'String')); % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global pp; global psnr_noise_remove; load psnr_noise_remove; global psnr; load psnr; %读入原始图像并显示 i=imread('lena.bmp'); subplot(2,2,1); imshow(i); title('原始图像'); axis square; %生成含噪图像并显示 j=imnoise(i,'gaussian',0,pp); subplot(2,2,2); imshow(j); title('含噪图像'); axis square; %用sym4小波函数对j进行2层分解 [c,l]=wavedec2(j,2,'sym4'); %实现低通滤波消噪 a1=uint8(wrcoef2('a',c,l,'sym4',2)); %用coif2小波函数对j进行2层分解 [gc,gl]=wavedec2(a1,2,'coif2'); n=[1,2];%设置尺度向量 p=[10.28,24.08];%设置阈值向量 %对三个高频系数进行阈值处理 nc=wthcoef2('h',gc,gl,n,p,'s'); nc=wthcoef2('v',gc,gl,n,p,'s'); nc=wthcoef2('d',gc,gl,n,p,'s'); mc=wthcoef2('h',gc,gl,n,p,'s'); mc=wthcoef2('v',gc,gl,n,p,'s'); mc=wthcoef2('d',gc,gl,n,p,'s'); %对更新后的小波分解结构进行阈值处理 x2=waverec2(mc,gl,'coif2'); %进行中值滤波 for ii=1:252; for jj=1:252; temp=0; for m=0:3 for n=0:3 temp=temp+double(x2(ii+m,jj+n)); end end temp=temp/16; x4(ii,jj)=temp; end end for ii=253:256 for jj=253:256 x4(ii,jj)=double(i(ii,jj)); end end %显示去噪图像 subplot(2,2,3); imshow(uint8(x4)); title('消噪图像'); axis square; %计算psnr q=0.0; for x=1:256; for j=1:256; diff=x4(x,j)-double(i(x,j)); q=q+diff*diff; end end psnr_y = q / (256*256); psnr_y = (255 * 255)/psnr_y; set(psnr_noise_remove,'String',psnr_y); for ii=1:10 if psnr(ii)==0 psnr(ii)=psnr_y; break; end end save psnr psnr; % --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called global psnr_noise_remove; % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end psnr_noise_remove=hObject; save psnr_noise_remove psnr_noise_remove; function edit2_Callback(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit2 as text % str2double(get(hObject,'String')) returns contents of edit2 as a double 运行之后一直红色提示 ??? function varargout = wavlet(varargin) | Error: Function definitions are not permitted at the prompt or in scripts. 是什么情况,怎么改
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
python学习方法总结(内附python全套学习资料)
不要再问我python好不好学了 我之前做过半年少儿编程老师,一个小学四年级的小孩子都能在我的教学下独立完成python游戏,植物大战僵尸简单版,如果要肯花时间,接下来的网络开发也不是问题,人工智能也可以学个调包也没啥问题。。。。。所以python真的是想学就一定能学会的!!!! --------------------华丽的分割线-------------------------------- ...
python 简易微信实现(注册登录+数据库存储+聊天+GUI+文件传输)
socket+tkinter详解+简易微信实现 历经多天的努力,查阅了许多大佬的博客后终于实现了一个简易的微信O(∩_∩)O~~ 简易数据库的实现 使用pands+CSV实现数据库框架搭建 import socket import threading from pandas import * import pymysql import csv # 创建DataFrame对象 # 存储用户数据的表(...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
Python实例大全(基于Python3.7.4)
博客说明: 这是自己写的有关python语言的一篇综合博客。 只作为知识广度和编程技巧学习,不过于追究学习深度,点到即止、会用即可。 主要是基础语句,如三大控制语句(顺序、分支、循环),随机数的生成,数据类型的区分和使用; 也会涉及常用的算法和数据结构,以及面试题相关经验; 主体部分是针对python的数据挖掘和数据分析,主要先攻爬虫方向:正则表达式匹配,常用数据清洗办法,scrapy及其他爬虫框架,数据存储方式及其实现; 最后还会粗略涉及人工智能领域,玩转大数据与云计算、进行相关的预测和分析。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
Python3.7黑帽编程——病毒篇(基础篇)
引子 Hacker(黑客),往往被人们理解为只会用非法手段来破坏网络安全的计算机高手。但是,黑客其实不是这样的,真正的“网络破坏者”是和黑客名称和读音相似的骇客。 骇客,是用黑客手段进行非法操作并为己取得利益的人。黑客,是用黑客手段为国家或单位做事的人。 那么,既然黑客不是一个很坏的职业,我们就可以去试着学习。 黑客本身的初衷 ——黑客其实一直是善良的。 骇客其实他的前身就是黑客。 骇客与黑客分家...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车?某胡同口的煎饼摊一年能卖出多少个煎饼?深圳有多少个产品经理?一辆公交车里能装下多少个乒乓球?一个正常成年人有多少根头发?这类估算问题,被称为费米问题,是以科学家费米命名的。为什么面试会问这种问题呢?这类问题能把两类人清楚地区分出来。一类是具有文科思维的人,擅长赞叹和模糊想象,它主要依靠的是人的第一反应和直觉,比如小孩...
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问