M文件变量检测与传递

Posted asahilikka

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了M文件变量检测与传递相关的知识,希望对你有一定的参考价值。

M文件中变量的检测与传递

可变数量的输入输出变量(varargin,vararout):

Matlab的输入输出变量数量可变,并具有以下特点:

  1. 可变输入输出变量必须在正常变量之后
  2. varargin和vararout本身为元胞数组
  3. 在函数调用时,会优先把变量赋予正常变量,在赋予varargin和vararout
  4. 可以使用vargin和varout获取实际的输入输出参数数量

 

例:

 1 function varargout = spirallength2(d,n,varargin)
 2 
 3 % 画出螺旋线或螺旋条带
 4 
 5 % d螺旋的旋距
 6 
 7 % n:螺旋的圈数
 8 
 9 % varargin可输入变量第一个值可改变螺旋大小,之后的参数设定属性Nin=length(varargin)+1;      %Nin为输入变量的长度+1
10 
11 if nargout>1                 %输出参数多于一个时报错
12 
13     error(Too many output arguement!);
14 
15 end
16 
17 j=sqrt(-1);
18 
19 phi = 0:pi/20:n*2*pi;
20 
21 amp = 0:d/40:n*d;
22 
23 spir = amp .*exp(j*phi);    %准备数据
24 
25 if nargout==0
26 
27     switch Nin
28 
29         case 1              %输入变量只有d,n
30 
31             plot(spir,b);
32 
33         case 2              %可变输入变量varargin有一个varargin1
34 
35             d1=varargin1;
36 
37             amp1=(0:d/40:n*d)+d1;
38 
39             spir1=amp1.*exp(j*phi);
40 
41             plot(spir,b);
42 
43             hold on;        %开启绘图保留,原来的绘图不会被删除
44 
45             plot(spir1,b);
46 
47             hold off;       %关闭绘图保留
48 
49         otherwise
50 
51             d1=varargin1;
52 
53             amp1=(0:d/40:n*d)+d1;
54 
55             spir1=amp1.*exp(j*phi);
56 
57             plot(spir,varargin2:end);   %使用varargin2之后传的属性值
58 
59             hold on;
60 
61             plot(spir1,varargin2:end);
62 
63     end
64 
65     axis(square)        %坐标轴设置,使用相同长度的坐标轴线。相应调整数据单位之间的增量
66 
67 else                       %有一个输出参数的情况
68 
69     phi0=0:pi/1000:n*2*pi;
70 
71     amp0=0:d/2000:n*d;
72 
73     spir0=amp0 .*exp(j*phi0);
74 
75     varargout1=sum(abs(diff(spir0)));
76 
77     if Nin>1
78 
79         d1=varargin1;
80 
81         amp1=(0:d/2000:n*d)+d1;
82 
83         spir1=amp1.*exp(j*phi0);
84 
85         varargout1=sum(abs(diff(spir1)));
86 
87     end
88 
89 end
90 
91 end

 

 

  1. 在命令行输入:

>> spirallength2(2,2)

 技术图片

 

 

输入参数只有d,n,无输出参数

 

  1. 在命令行输入:

>> spirallength2(2,2,1,‘Marker‘,‘o‘)

 技术图片

 

 

第三个输入参数’1’使得螺旋线直径加一,第4,5个参数使得螺旋线形状变为’o’

 

  1. 在命令行输入

>> a=spirallength2(2,2,1,‘Marker‘,‘o‘)

 技术图片

 

 

 

 

 

有输出参数,可获得螺旋线周长

 

以上是关于M文件变量检测与传递的主要内容,如果未能解决你的问题,请参考以下文章

PHP中检测一个变量是不是有设置的函数是啥

php命令行工具检测php文件语法格式是不是正确的方法是

对于异常值的检测

检测按下了哪个按钮

如何将检测到的人脸从函数传递到 Qt 中的单独按钮槽

javaScript使用技巧