求问matlab代码

2024-05-15

1. 求问matlab代码

1. region = (swc~=-9999)表示判断swc中每个元素是否是不等于-9999,如果不等用1表示否则用0表示。因此region是和swc大小一致的矩阵,里面的每个元素都是对应于swc的相应元素的判断结果。
 
举个例子
>> swc=[-9999,0;20,-9999]
swc =
       -9999           0
          20       -9999
>> region=(swc~=-9999)
region =
     0     1
     1     0
2. fswc = fswc.*region + (region==0).*-9999这句表示fswc中的元素在region的相应的元素为1的时候不变,为0的时候都变为-9999.
举个例子
fswc=[1 2;3 4]
fswc =
     1     2
     3     4
>> region
region =
     0     1
     1     0

fswc = fswc.*region + (region==0).*-9999
fswc =
       -9999           2
           3       -9999
这里矩阵region等于0的为对角线上的元素,则fswc矩阵相对应的对角线元素都变为-9999.

求问matlab代码

2. 求MATLAB函数代码

题主给出的函数为分段函数,在matlab中可以用代码来实现:
1、首先,建立自定义分段函数,piecewise_fun(x),并保存为piecewise_fun.m文件。piecewise_fun(x)函数的内容,为
function y=piecewise_fun(x)
n=length(x);
for i=1:n
if x(i)>=0 & x(i)<=1
y(i)=x(i);
elseif x(i)>1 & x(i)<=2
y(i)=2*x(i)-1;
elseif x(i)>2
y(i)=x(i).^2-1;
else
y(i)=0;
end
end
end
2、然后在matlab的命令窗口中,执行下来命令
>>x=-10:0.5:10; %例如
>>y=piecewise_fun(x)

>>plot(x,y),grid on
>>xlabel('x'),ylabel('y(x)')



3. matlab中的编程问题

1. ~=是“不等于”

2. == 是“等于”

3. &&是“与”

4. 逗号表示维数的分隔符,例如a(2,3)表示矩阵a中第2行第3列的值;

5. 冒号是一种简洁的表示方法,例如a(2,:)表示矩阵a中第二行的所有数,而a(2,1:3)表示矩阵a第2行中第1列,第2列以及第3列的数,依此类推。

matlab中的编程问题

4. MATLAB编程问题

b(20,0.25) 表示服从项数为20,概率为0.25的二项分布(Binomial Distribution)。
二项分布是伯努利分布(Bernoulli Distribution)的推广,而二项分布可以进一步推广到多项分布(Multinomial Distribution)。
MATLAB 中提供了二项分布的概率质量函数binopdf以及随机数生成函数binornd。
 
参考代码:
1、概率分布
stem(0:20,binopdf(0:20,20,0.25))
2、生成随机数
>> binornd(20,0.25,[3 6])ans =    10     6     5    10     5     2     4     2     3     3     5     4     6     7     4     3     6     63、已知分布求x
>> interp1(binocdf(0:20,20,0.25),0:20,0.45)ans =    4.1738第4问没看明白要干什么,和第1问什么区别?

5. 求助编写MATLAB代码

题中有几个参数的含义都没做说明,取值范围也不清楚:
1、μ和σ惯例是均值和均方差的符号,是哪个量的均方差?取值范围呢?
2、Δt是什么?
3、第一个方程中的S应该是指第二个方程中的S(t-1)吧?
4、ε“服从标准正态分布”的意思应该是其均值为0、方差为1?
 
代码并不复杂:
N = 1000;S = zeros(N+1,1);S(1) = 100;mu = 100;sigma = 30;dt = 0.001;e = randn(N,1);for i = 2 : N+1    DS = S(i-1) * ( mu*dt + sigma * e(i-1) * sqrt(dt) );    S(i) = S(i-1) + DS;endstem(0:N,S)从参数取值看,Δt的影响比较大,如果取的稍大一些,就很容易发散。而按照当前的参数值,尽管过程不同,最终都能收敛到0。

求助编写MATLAB代码

6. 请matlab高手帮我看一个程序,能否解释一下这些代码的含义?

一步一步来:
[m,n]=size(data)  m,n即你自己的数据data这个矩阵的行数和列数,
Y=data(:,9) 是data这个矩阵的第九列构成的数组
X=zeros(38,9)  是由38行、9列构成的一个初始的0矩阵
X(:,1)=1表示X的第一列元素均为1
Z=zeros(38,1)、t、Q的解释同上面X的解释一样
然后是对X这个矩阵个元素的重新制定:
矩阵X的行数i为1到m列数j为2到9的元素,为data的i行,j-1列的元素
A为X的平方
C为A的逆矩阵
b 是C与X和Y的矩阵的乘积(注意矩阵相乘有行和列数的匹配)
Z矩阵的1到m行,个元素与b矩阵中元素的关系就是由 

这个式子来获得。
接下来是Q矩阵中元素:Q中2到9行,各元素与b矩阵元素的关系通过这个式子来得到:

然后是St、Sf这两个矩阵的求解,基本同上面的解释是一样的,只不过在此是从1到m的元素一步一步迭代,另外mean(Y )表示的是矩阵Y元素的平均值。Sqrt(St/Sf) ,St/Sf是开方。abs是绝对值

7. matlab编程问题

分类:  电脑/网络 >> 程序设计 >> 其他编程语言 
   问题描述: 
  
 我第一次接触matlab,但老师就要求我们用它来编程了
 
 无从下手
 
 题目:
 
 1。设方程的根为X=[-3,-5,-8,-9],编写MATLAB程序求他们对应的X多项式的系数。
 
  
 
 2。 设f(x)=1/((x-2)^2+0.1) +1/((x-3)^4+0.01),写出一个MATLAB函数程序f31.m,使得调用f1时,x可用距阵代入,得出的f(x)为同阶距阵。画出x=[0,4]区间内的f31曲线。
 
 我是新人,把所用分都拿出来了
 
 忘哪位强人帮帮忙
 
 在此谢过!
 
   解析: 
  
 【1】设多项式为:x^4+a*x^3+b*x^2+c*x+d=0
 
 y=subs('x^4+a*x^3+b*x^2+c*x+d=0',[-3 -5 -8 -9])
 
 p=solve(y(1),y(2),y(3),y(4))
 
 a=p.a,b=p.b,c=p.c,d=p.d
 
 运行结果:
 
 a =25
 
 b =223
 
 c =831
 
 d =1080
 
 验证:
 
 X=roots([1 25 223 831 1080])
 
 X =
 
  -9.0000
 
  -8.0000
 
  -5.0000
 
  -3.0000
 
 【2】把以下2行文件存为f31.m
 
 function f=f31(x)
 
 f=1./((x-2).^2+0.1) +1./((x-3).^4+0.01);
 
 例如:
 
 >> f31(2)
 
 ans = 10.9901
 
 >> f31([2 3 4;1 2 3])
 
 ans =
 
  10.9901 100.9091 1.2340
 
  0.9716 10.9901 100.9091
 
 【3】画出x=[0,4]区间内的f31曲线
 
 >> fplot('1/((x-2)^2+0.1) +1/((x-3)^4+0.01)',[0,4])

matlab编程问题

8. 求解matlab代码

该问题属于线性规划最优解问题,解决的方法如下:
1、创建自定义目标函数,即
f=x1+x2+x3+x4+x5+x6
2、创建自定义约束条件函数,即
x1+x5+x6=18
2*x3+x4=18
2*x1+6*x2+3*x4+x5=26
3、使用fmincon()极值函数,求解其x1、x2、x3、x4、x5、x6
4、根据上述方法编程并运行,可以得到如下结果

最新文章
热门文章
推荐阅读