嗨,
我想总结两个函数句柄,但它不起作用.例如:
Y1 = @(X)(X*X);
Y2 = @(X)(X*X + 3*X);
Y3 = Y1 + Y2
我收到的错误是"???未定义的函数或方法'加上'为'function_handle'类型的输入参数."
这只是一个小例子,实际上我实际上需要迭代地总结大约500个相互依赖的函数.
编辑
Clement J.的解决方案确实有效但我无法将其概括为循环并遇到问题.我有功能s=@(x,y,z)((1-exp(-x*y)-z)*exp(-x*y));我有一个包含536个数据点的矢量v和另一个包含536个数据点的矢量w.我的目标是总结s(v(i),y,w(i)),因为i = 1 ... 536因此在变量y中得到一个函数,它是536个函数的总和.我尝试的语法是:
sum=@(y)(s(v(1),y,z2(1)));
for i=2:536
sum=@(y)(sum+s(v(i),y,z2(i)))
end
Run Code Online (Sandbox Code Playgroud) 我想在Matlab中总结矩阵的所有元素.如果我有一个名为A的矩阵,那么我可以通过调用来求和所有元素
sum(A(:));
Run Code Online (Sandbox Code Playgroud)
但我想总结从这样的函数返回的元素:
sum(gammaln(A)) % where gammaln is the logarithm of gamma function
Run Code Online (Sandbox Code Playgroud)
当然,我可以分两步完成:
B = gammaln(A);
sum(B(:));
Run Code Online (Sandbox Code Playgroud)
但是在这里我创建了一个B矩阵,我根本不需要它.我也可以这样做:
sum(sum(gammaln(A)))
Run Code Online (Sandbox Code Playgroud)
但是,sum的数量将等于我的矩阵的维数.它看起来很丑,矩阵维度可能会发生变化.
我很好奇是否有任何办法这样做.
我是MATLAB的新手,想从我从数据库中获取的单元格数据中提取数据:
sensors =
[ 1] [23] [1] [ 0] [0.1000] [1x29 char]
[ 2] [23] [1] [120] [0.1000] [1x43 char]
[ 3] [23] [1] [120] [0.1000] [1x42 char]
[ 4] [23] [1] [ 15] [0.1000] 'Air Temp Grey Box'
[ 5] [23] [1] [120] [0.1000] [1x34 char]
[ 6] [23] [1] [120] [0.1000] [1x33 char]
[ 7] [23] [1] [120] [0.1000] 'Pool Water Temp'
[ 8] [23] [2] [ 0] [0.1000] [1x28 char]
[ 9] [23] [1] [ 30] [0.1000] …Run Code Online (Sandbox Code Playgroud) 我有一个非常基本的问题.正态概率图的基础是什么,即概率代表什么?我正在测试标准的正态分布.我的normplot(在MATLAB中)显示这些值或多或少是直线,但0.5的概率对应于零以外的值.
我的问题是,我该如何解释这个?这是否意味着我的数据是正态分布但具有非零均值(即非标准正常)或者这个概率是否仅反映了其他内容?我试过谷歌,一个链接说概率是来自z-table的累积概率,我无法弄清楚该怎么做.
同样在MATLAB中,只要值适合程序绘制的线(红色虚线),值是否来自正态分布?在我的一个图表中,虚线非常陡峭,但值适合,这是否意味着超出此线的一个或两个值只是异常值?
我对统计数据很新,所以请帮忙!
谢谢!


我在MATLAB中有一系列XY点对.这些对描述图像中形状周围的点; 它们不是函数,意味着每个x值可能存在两个或更多y点.
我可以使用类似的东西单独绘制这些点
plot(B(:,1),B(:,2),'b+');
Run Code Online (Sandbox Code Playgroud)
我也可以使用情节连接点:
plot(B(:,1),B(:,2),'r');
Run Code Online (Sandbox Code Playgroud)
我正在尝试检索的是我自己的点值,我可以使用它来连接点,以便我可以使用它们进行进一步分析.我不想要一个完全连接的图形,我需要一些基于数据的东西,而不仅仅是plot()产生的图形.我喜欢让plot()生成这些点(因为它似乎在幕后做),但我尝试使用plot()返回的linseries,它或者不能正常工作,因为我理解它或只是没有给我我想要的东西.
我认为这是一个插值问题,但这些点不包含函数; 他们描述了一个形状.基本上,我需要的只是plot()似乎计算的点; 连接一系列点的直线.一条曲线将是一个奖励,可以节省我下游的悲伤.
我怎样才能在MATLAB中做到这一点?
谢谢!
编辑:是的,图片会有帮助:)
蓝点是实际的点值(x,y),使用上面的第一个plot()调用绘制.红色轮廓是使用上面的第二种方法调用plot()的结果.我正在尝试获取红色轮廓的点数据; 换句话说,连接蓝点的点.

在MATLAB中,有没有办法将数组的元素旋转到另一个维度,如:
y=[-1,0,1] --> y=[-1; 0; 1] (like transpose)
y=[-1,0,1] --> y(:,:,1)=-1, y(:,:,2)=0, y(:,:,3)=1
y=[-1,0,1] --> y(:,:,1,1)=-1, y(:,:,1,2)=0, y(:,:,1,3)=1
Run Code Online (Sandbox Code Playgroud)
我想避免循环.
我想找到x=0:0.1:pi/2给定数字中最近元素的索引z=0.65.我已经做到了这一点,但我想要更好的东西:
[C,I]=min(abs(x-z)).
I是最近元素的索引.
我打算买一台Mac.我希望能够为Mac开发GUI应用程序.目前我使用VisualStudio作为IDE开发C#.我也了解Java,我熟悉NetBeans IDE.用这两种语言创建的应用程序可以在Mac上运行(NetBeans IDE也可以),但有人告诉我,无论是C#还是Java,都不建议使用MacOS X开发.
那么推荐MacOS X开发的语言是什么?我猜Apple有一些针对开发人员的建议吗?我更喜欢面向对象的易于使用的编程语言(不像C)和支持GUI创建的良好IDE(GUI设计器).
谢谢你的回答
我是MATLAB的新手,我无法以我想要的格式得到答案.我有一个基本的函数调用,但每次执行程序都会得到以下格式的结果:
357341279027200000/23794118819840001
Run Code Online (Sandbox Code Playgroud)
它应该是十进制的,例如同样的执行:15.0181.
我无法弄清楚为什么会这样?你能帮帮我吗,谢谢!