我的问题是:我有一个MATLAB GUI,如果我运行它以显示在我的GUI而不是命令窗口中,我想要得到的分析结果.我尝试使用列表框来显示结果,因为为列表框自动创建了滑块,但它不起作用.如何使用静态文本框显示数据?
我正在使用MATLAB在图像上应用离散小波变换.我正在应用它几次(3)以获得3级变换.我正在使用dwt2MATLAB提供的功能来压缩和idwt2进行解压缩.问题是我不知道如何多次解压缩,就像idwt2多次应用到先前接收的输出一样,因为它返回一个矩阵.举个例子:
x = idwt2(scaled3, vertical3, horizontal3, diagonal3, Lo_R, Ho_R);
Run Code Online (Sandbox Code Playgroud)
应该如何idwt2应用于x?
我有一个包含值0,1,2和3的向量.我想要做的是从每个从这个向量中提取的16个元素集合中取下两位,并将它们全部附加在一起得到一个uint32.有人知道一个简单的方法吗?
后续:如果向量中的元素数不是16的整数倍,该怎么办?
matlab bit-manipulation vector data-conversion unsigned-integer
我想ezplot在MATLAB中使用,因为我想绘制的函数由大量术语组成,我可以将它分成更小的函数.让我举一个少数术语的例子,它可以推广到很多术语.绘制函数:
y2+xy+xy3+x+1=0
Run Code Online (Sandbox Code Playgroud)
我让y1=x+1我在MATLAB中写下以下内容:
x=[0:1:5]
y1=x+1
ezplot('y.^2+x*y+x*y.^3+y1')
Run Code Online (Sandbox Code Playgroud)
但是有一个错误.请告诉我如何更正错误.是否可以使用此功能(将等式或函数分成若干项)?
我想知道在MATLAB中我将如何绘制圆圈并正确显示它而不是默认显示为椭圆形.我想这与轴上的局部坐标系有关.
我试图在我们的内部库中找到所有MATLAB函数的所有输入/输出.我是新的(第一次)正则表达式,并一直试图在Python的re库中使用多行模式.
MATLAB函数语法如下:
function output = func_name(input)
Run Code Online (Sandbox Code Playgroud)
签名可以跨越多行.
我开始使用如下模式:
re.compile(r"^.*function (.*)=(.*)\([.\n]*\)$", re.M)
Run Code Online (Sandbox Code Playgroud)
但我一直得到一个不受支持的模板操作符错误.任何指针都很赞赏!
编辑:
我现在有:
pattern = re.compile(r"^\s*function (.*?)= [\w\n.]*?\(.*?\)", re.M|re.DOTALL)
Run Code Online (Sandbox Code Playgroud)
给出如下匹配的匹配:
function [fcst, spread] = ...
VolFcstMKT(R,...
mktVol,...
calibrate,...
spread_init,...
fcstdays,...
tsperyear)
if(calibrate)
if(nargin < 6)
tsperyear = 252;
end
templen = length(R)
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么它会给出额外的线而不是在第一线停下来)?
[r,c,d] = size(rgbImage); %# Get the image dimensions
Run Code Online (Sandbox Code Playgroud)
什么是r,c,d站在这里?
我正在评估一个简单的函数:
y = (2*x)/sqrt( 1 + x.^2 );
Run Code Online (Sandbox Code Playgroud)
其中x包含大约100个值的向量在哪里.但是,y在这种情况下,MATLAB 等于单个标量值.如果我做:
y = 2*x;
Run Code Online (Sandbox Code Playgroud)
我y按预期得到了一个值向量.如果我做:
y = x.^2;
Run Code Online (Sandbox Code Playgroud)
我也y按预期得到了一个值向量.
为什么上面的等式y = (2*x)/sqrt( 1 + x.^2 );给出单个值而不是值向量?
如何.^在MATLAB中重新定义指数函数?从:
x.^y
Run Code Online (Sandbox Code Playgroud)
至:
sign(x).*abs(x.^y))
Run Code Online (Sandbox Code Playgroud) 我想在MATLAB图中轴外的每个数据点上创建一条带有圆形标记的线,类似于
line([x1 x2],[y1 y2],'Color','k','Marker','o')
Run Code Online (Sandbox Code Playgroud)
会产生。
要将线对象放置在轴外,我只是尝试使用annotation:
annotation('line',phi1([x1 x2]),phi2([y1 y2]),'Color','k','Marker','o')
Run Code Online (Sandbox Code Playgroud)
其中phi1和phi2是适当的坐标转换,以适合当前图形的坐标x和y轴内。
我期望这行得通,因为线对象具有marker属性。但是,通过annotation,我收到以下错误消息:
Error using matlab.graphics.shape.Line/set
There is no Marker property on the Line class.
Error in matlab.graphics.chart.internal.ctorHelper (line 8)
set(obj, pvpairs{:});
Error in matlab.graphics.shape.Line
Error in annotation (line 128)
h = matlab.graphics.shape.Line(aargs{:});
Run Code Online (Sandbox Code Playgroud)
同样,用该annotation函数绘制矩形时,不能设置该Curvature属性。似乎annotation不支持这些类型的属性,即使它像line或rectangle函数那样创建线或矩形对象。我尝试摆弄注解句柄和子项,但没有成功。
有任何解决方法的想法吗?