关于matlab编程的问题

作者&投稿:微翟 (若有异议请与网页底部的电邮联系)
关于matlab编程错误~

是求直方图吧。
看这个行错误就知道。
Function imhist expected its first input argument, I or X,to be two-dimensional
imhist需要一个二维的输入参数。你直接读入的图片是不是二维的,你需要将其转换为二维图像。
我估计你读入的图像是彩色的,彩色图像不能那样直接做直方图的。
建议先将图像变为灰度图像。
i1 = rgb2gray(i1);
即可。

for(int i=0;i<=1000i++){
int s += i;
}
输出s就行了

下面是我对这道题思路:
1:
对于第一题的微分方程组在matlab中输入[f,g]=dsolve('Df=exp(f*sin(t)+g)','Dg=exp(g*cos(t))+f','t')答案是 Explicit solution could not be found,即没有解析解,因此只能求其近似解,也就是数值解。

求解微分方程的数值解需要知道“函数的初值”“自变量的范围”,即f(0)=?,g(0)=?,变量t的取值范围是多少,然后迭代运算,得到在给定定义域内的近似值。
2:
差分法也就是我们知道的欧拉法(Euler)"思想是用先前的差商近似代替倒数",直白一些的编程说法即:f(i+1)=f(i)+h*f(x,y)其中h是设定的迭代步长,若精度要求不高,一般可取0.01。在定义区间内迭代求解即可。
龙哥库塔法一般用于高精度的求解,即高阶精度的改进欧拉法。
常用的是四阶龙哥库塔:
编程语言如下:
y(i+1)=y(i)+h*(k1+2*K2+2*k3+k4)/6;
k1=f(xi,yi)
k2=f(xi+h/2,yi+h*k1/2);
k3=f(xi+h/2,yi+h*k2/2);
k4=f(xi+h,yi+h*k3);
设置终止条件迭代求解。

思想就是这样,代码如下:
%% 龙哥库塔or欧拉法求解微分方程
t=0:0.01:3; %自变量范围
f = [];
g = [];
f(1) = 0.1; %f初值
g(1) = 1; %g初值

h=0.001;
for i=1:length(t)
%% 欧拉法

% f(i+1) =f(i)+h*(exp(f(i)*sin(t(i)))+g(i));
% g(i+1) =g(i)+h*(exp(g(i)*cos(t(i)))+f(i));

%% 龙哥库塔
kf1 = exp(f(i)*sin(t(i)))+g(i);
kf2 = exp((f(i)+kf1*h/2)*sin(t(i)+h/2))+g(i);
kf3 = exp((f(i)+kf2*h/2)*sin(t(i)+h/2))+g(i);
kf4 = exp((f(i)+kf3*h)*sin(t(i)+h))+g(i);
f(i+1) = f(i) + h*(kf1+2*kf2+2*kf3+kf4)/6;

kg1 = exp(f(i)*cos(t(i)))+f(i);
kg2 = exp((f(i)+kg1*h/2)*cos(t(i)+h/2))+f(i);
kg3 = exp((f(i)+kg2*h/2)*cos(t(i)+h/2))+f(i);
kg4 = exp((f(i)+kg3*h)*cos(t(i)+h))+f(i);
g(i+1) = g(i) + h*(kg1+2*kg2+2*kg3+kg4)/6;
end
figure(1)
plot(t,f(1:length(t)),t,g(1:length(t)));
legend('f函数','g函数')

不会 看不懂


如何将Matlab的程序嵌入到Labview中去,也就是如何利用Matlab编程...
组件对象模型的核心就是二进制接口规范,此规范独立于编程语言和操作系统。从6.5版本开始,Matlab提供了COM生成器。COM生成器提供了实现Matlab独立应用的一种新途径。它能把Matlab开发的算法做成组件,这些组件作为独立的COM对象,可直接被Visual Basic,Visual C++或其他支持COM的语言所引用[1]。LabVIEW5.0...

如何调用matlab生成的dll文件进行编程
通常在实现图像处理的算法时我们使用Matlab编程,因为它具有丰富的库函数以及操作方便,然而在工程项目中通常使用C\/C++语言。如果我们将matlab代码完全重写成C++代码会很麻烦,最好的办法是借助matlab与C\/C++接口将.m程序转成dll文件!一、使用matlab将.m转成dll文件 1、在命令行中输入mex -setup 提示你...

matlab二分法编程
这是源代码:在matlab中保存为:bisection.m function rtn=bisection(fx,xa,xb,n,delta)二分法解方程 fx是由方程转化的关于x的函数,有fx=0。xa 解区间上限 xb 解区间下限 解区间人为判断输入 n 最多循环步数,防止死循环。delta 为允许误差 x=xa;fa=eval(fx);x=xb;fb=eval(fx);disp(' [...

matlab中的冒号是什么意思?
A<0) = 0表示将A中小于0的元素设置为0;还可以进行含条件的选择性赋值,如A(A<0) = -A(A<0)表示将A中小于0的元素赋值为它们自身的相反数。冒号作为Matlab中的一个非常重要的基础语法元素,在实际编程中被广泛应用。对于Matlab编程的初学者来说,熟练掌握冒号的使用方法是必要的基础知识。

简化毕肖普法 matlab怎么编程?
1:i);c=c(1:i);b=b(1:i);W=W(1:i);μ=μ (1:i);φ=φ(1:i);α=α(1:i);Q=Q(1:i);e=e(1:i);Fs1=Fs1+sum(c*b+(W-μ*b)*tan(φ)\/mα)\/(sum(W*sinα)+sum(Q*e\/R))Fs(i)=Fs1;end 注意:μ、φ、α应用相近的字母代替。因为matlab系统不认希腊字母。

matlab如何编程产生正态分布的随机数的程序?
可以采用Box_Muller的方法。Box-Muller方法是以两组独立的随机数U和V,这两组数在(0,1]上均匀分布,用U和V生成两组独立的标准常态分布随机变量X和Y x=sqrt((-2)*ln(U))*cos(2*pi*V);Y=sqrt((-2)*ln(U))*sin(2*pi*V);matlab 程序 function Norm_Distribution_Box_Mullerclear all;...

matlab编程
第一个:编写函数文件:function f=ff(x,y)x=input('x=');y=input('y=');f=x^2+sin(x*y)+2*y;以ff.m保存,在命令窗口输入ff就可运行。第二个:编写函数文件:function f=fff(n)n=input('n=');s=0;for i=1:n s=s+prod(1:i);end s 以文件名fff.m保存,在命令窗口输入...

基于matlab或C#的神经网络编程
1. 人工神经元( Artificial Neuron )模型 人工神经元是神经网络的基本元素,其原理可以用下图表示:图中x1~xn是从其他神经元传来的输入信号,wij表示表示从神经元j到神经元i的连接权值,θ表示一个阈值 ( threshold ),或称为偏置( bias )。则神经元i的输出与输入的关系表示为:图中 yi表示神经元...

matlab中find函数如何使用
在复杂的矩阵操作中,find函数结合其他MATLAB函数可以大大提高数据处理效率。对于三维或更高维度的数组,也可以应用类似的逻辑进行元素的搜索和定位。同时要注意数组中的数据类型和结构可能对find函数的结果产生影响,使用时需要仔细核对数据的属性和特点。正确使用find函数可以大大提高MATLAB编程的效率与准确性。

matlab与java混合编程有什么作用
Java和matlab混合编程 如果用Matlab和java混合编程开发Windows的应用程序则可以实现优势互补,缩短开发时间,降低程序设计的复杂度。同时程序可以脱离Matlab环境独立运行,在工程计算和教学实践中都具有实际意义。1.使用java调用Maltab函数的基本方法是:通过Java Builder实现Java调用Matlab。在Java环境中直接调用...

翠屏区18454361263: matlab编程中的一些问题 -
平向活性: 1、bounds=[-1;1]'得到的其实就是一个行向量[-1 1],你可以把它复制来运行一下就行了;单引号就是转置的意思,因为“;”表示“-1”和“1”是处于两行的,转置一下就回来了. 2、(bounds(:,2)-bound(:,1))是说“bounds”这个二维...

翠屏区18454361263: 关于matlab编程的问题 -
平向活性: matlab和C/C++不同.matlab是script语言,在程序打开后,就向系统申请一个比较大的内存空间,以后所有的运算都是在这个内存中进行,所谓clear语句,不过是将这个变量名去除而已,对应的内存空间并没有释放,仍旧是被matlab占用着.

翠屏区18454361263: 关于matlab 的 编程 问题, 帮下忙 -
平向活性: syms a b c d x; % 创建符号f=a*x^3+b*x^2+c*x+d % 创建符号函数 f=ax^3+bx^2+cx+dweifen=diff(f,x) %该符号函数对x的微分jixian=limit(f,x,1) %对x趋向于1求该符号函数的极限jifen=int(f,x,0,1) %该符号函数在区间[0,1]上对x的定积分jie=solve('a*x^3+b*x^2+c*x+d=0','x') %符号方程f=0的解其它问题,学过高数就知道了,或者 你也可以百度,有答案的....

翠屏区18454361263: 关于MATLAB编程的问题,急求大神解答!!..有重谢! -
平向活性: clc clear X=[12 5 -6 14 7 -12 4 9 16 3 20 7 -12 5 0 6 14 6 -10 18]; [m,n]=size(X); U=mean(X); v=var(X); for k=0:(n-1) for i=1:n if (i+k)>n a(i)=0; else a(i)=(X(i)-U)*(X(i+k)-U); end end r(k+1)=mean(a)/v; end subplot(211);stem(r); subplot(212);autocorr(X);title('autocorr函数计算对比');

翠屏区18454361263: 关于matlab的编程问题 -
平向活性: conj是求复数的共轭:conj(Z) = real(Z) - i*imag(Z)对于符号矩阵,求其转置的时候加上点就行了.>> syms x>> a=[x,1/(x+1);1/(x+2),1/(x+3)]a =[ x, 1/(x+1)][ 1/(x+2), 1/(x+3)]>> a.'ans =[ x, 1/(x+2)][ 1/(x+1), 1/(x+3)]>>

翠屏区18454361263: matlab编程问题 -
平向活性: 你的错误在于想把数值直接代入到符号运算里了...syms x f=x+log(x); 这两行是符号运算, 后面直接用f(d)这样必然报错...解决办法: 反正f也就在判断的时候用一下,那就简单了,不要那两行符号运算了,删掉 然后把后面的f(d)换成d+log(d)

翠屏区18454361263: 关于matlab编程问题 -
平向活性: 定义差值数组d,用for循环来计算for i=1:10 d[i]=aa(i,2)-aa(i,1);end然后依次判断d[i]的大小,进行分类.

翠屏区18454361263: 关于matlab编程的问题
平向活性: 首先,不知道你那个m文件截图全不全,如果是全的话,你似乎并没有给firstlevel赋值,你图里结果那个ans=2.5应该是res=2.5吧? 其次,MATLAB使用全局变量时,在定义方和使用方均需声明global,比如这样: 新建一个Untitled2.m文件,输...

翠屏区18454361263: 有关MATLAB编程问题 急~ -
平向活性: 1.function x=question1(a,b,x0)x=a/(b+x0);while abs(x-x0)>=1e-5 x0=x; x=a/(b+x0);end例:question1(4,2,1)ans = 1.23612.function y=fx(x)y=(x-2).^2+(x-2).^4;

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网