MATLAB问题,好心人能不能帮我看看错在哪了?调试了一晚上都运行不出来
![](images/u2507.png)
MATLAB问题,好心人能不能帮我看看错在哪了?调试了一晚上都运行不出来
我有一个文件t1.txt放在MATLAB的默认文件夹work下,内容是
学号 姓名 数学 英语 语文
20101001 Sally 88 30 77
20101002 Paul 90 80 62
20101003 Lily 73 85 53
20101004 Tom 82 74 90
20101005 Peter 96 68 87,
题目要求是按照每个人三科的平均分降序排序,然后写出到t2.txt文件中,并在写出的文件中加入平均分.下面是程序:
[a b c d e]= textread('t1.txt','%n %s %n %n %n',5);
[c d e]= textread('t1.txt','%n %n %n',5);
A=[c d e];
B=mean(A,2);
C=[a c d e B];
[D,pos]=sort(C(:,5),'descend');
C=C(pos,:);
b=b(pos,:);
fid=fopen('t2.txt','wt');
fprintf(fid,'学号 姓名 数学 英语 语文 平均分n');
for i=1:5
r=num2str(b{i,1});
fprintf(fid,'%d %s %.1f %.1f %.1f',a(i),r,c(i),d(i),e(i),C(i,5));
fprintf(fid,'n');
end
fclose(fid);
它老是说错误是这个:
? Trouble reading number from file (row 1, field 1) ==> 学号 姓名 数学 英语 语文n
Error in ==> textread at 177
[varargout{1:nlhs}]=dataread('file',varargin{:});
Error in ==> Untitled5 at 1
[a b c d e]= textread('t1.txt','%n %s %n %n %n',5);
可是我这里真的没错啊.
我有一个文件t1.txt放在MATLAB的默认文件夹work下,内容是
学号 姓名 数学 英语 语文
20101001 Sally 88 30 77
20101002 Paul 90 80 62
20101003 Lily 73 85 53
20101004 Tom 82 74 90
20101005 Peter 96 68 87,
题目要求是按照每个人三科的平均分降序排序,然后写出到t2.txt文件中,并在写出的文件中加入平均分.下面是程序:
[a b c d e]= textread('t1.txt','%n %s %n %n %n',5);
[c d e]= textread('t1.txt','%n %n %n',5);
A=[c d e];
B=mean(A,2);
C=[a c d e B];
[D,pos]=sort(C(:,5),'descend');
C=C(pos,:);
b=b(pos,:);
fid=fopen('t2.txt','wt');
fprintf(fid,'学号 姓名 数学 英语 语文 平均分n');
for i=1:5
r=num2str(b{i,1});
fprintf(fid,'%d %s %.1f %.1f %.1f',a(i),r,c(i),d(i),e(i),C(i,5));
fprintf(fid,'n');
end
fclose(fid);
它老是说错误是这个:
? Trouble reading number from file (row 1, field 1) ==> 学号 姓名 数学 英语 语文n
Error in ==> textread at 177
[varargout{1:nlhs}]=dataread('file',varargin{:});
Error in ==> Untitled5 at 1
[a b c d e]= textread('t1.txt','%n %s %n %n %n',5);
可是我这里真的没错啊.
已提交,审核后显示!提交回复
共1条回复
461759481 共回答了21个问题
|采纳率90.5%- [a b c d e]= textread('t1.txt','%n %s %n %n %n',5);将这一句换成这个,[a b c d e]= textread('aaa.txt','%s %s %s %s %s',5);a,b,c,d,e中的元素为元胞数组,你提取里面的数组元素(原来是字符串,可能要转化为数字)计算就可以了.
- 1年前
相关推荐
- 求Matlab大神给一个解下面这个非线性方程组的方法!
求Matlab大神给一个解下面这个非线性方程组的方法!
其中,只有p,q是未知参数,Xi是已知的,怎么求p,、
愿无涯1年前1
-
01cjj 共回答了18个问题
|采纳率88.9%非线性方程组数值解法 - 正文
n个变量n个方程(n >1)的方程组表示为
(1)
式中ƒi(x1,x2,…,xn)是定义在n维欧氏空间Rn 的开域D上的实函数.若ƒi中至少有一个非线性函数,则称(1)为非线性方程组.在Rn 中记 ƒ= 则(1)简写为ƒ(尣)=0.若存在尣*∈D,使ƒ(尣*)=0,则称尣*为非线性方程组的解.方程组(1)可能有一个解或多个解,也可能有无穷多解或无解.对非线性方程组解的存在性的研究远不如线性方程组那样成熟,现有的解法也不象线性方程组那样有效.除极特殊的方程外,一般不能用直接方法求得精确解,目前主要采用迭代法求近似解.根据不同思想构造收敛于解尣*的迭代序列{尣k}(k=0,1,…),即可得到求解非线性方程组的各种迭代法,其中最著名的是牛顿法.1年前查看全部
- matlab 求解微分方程方程如下:x''(t)+x'(t)+x(t)-4*x(t)^2+3*x(t)^3-2*sin(
matlab 求解微分方程
方程如下:
x''(t)+x'(t)+x(t)-4*x(t)^2+3*x(t)^3-2*sin(t)=0
其中x''(t)是x(t)的二阶导数,
其中x'(t)是x(t)的一阶导数.
初值:
x'(0)=0.
x(0)=0
要求给出具体的代码,淡定算个球1年前2
-
13digemi 共回答了26个问题
|采纳率88.5%syms x t;
dsolve('D2x+Dx+x-4*x^2+3*x^3-2*sin(t)=0','x(0)=0','Dx(0)=0','t');
程序代码就是这个样子的,命令的意义自己看matlab help吧,不过用matlab没解出解析解来1年前查看全部
- 求单叶双曲面和双叶双曲面、椭圆抛物面、双曲抛物面用matlab怎么画或其参数方程?
求单叶双曲面和双叶双曲面、椭圆抛物面、双曲抛物面用matlab怎么画或其参数方程?
有个例子就成,选修可的实验报告.大一高数学的不太好,现在乘机补课.ly1217341年前3
-
mis_frog 共回答了21个问题
|采纳率81%花画圆的程序:
for i=-3:0.001:3
y=-sqrt(9-i^2);
plot(i,y);
hold on
end
hold on
for i=-3:0.001:3
y=sqrt(9-i^2);
plot(i,y);
hold on
end
%椭圆
for i=-6:0.01:6
y=-sqrt(36-i^2)/2;
plot(y,i);
hold on
end
%双曲线
for i=-6:0.01:6
y=-sqrt(36+i^2)/2;
plot(y,i);
hold on
end
hold on
for i=-6:0.01:6
y=sqrt(36+i^2)/2;
plot(y,i);
hold on
end
hold on
for i=-6:0.01:6
y=sqrt(36-i^2)/2;
plot(y,i);
hold on
end
%抛物线
for i=0:0.01:6
y=-sqrt(2*6*i);
plot(y,i);
hold on
end
hold on
for i=0:0.01:6
y=sqrt(2*6*i);
plot(y,i);
hold on
end1年前查看全部
- matlab中var函数的翻译For N-D arrays, VAR operates along the first
matlab中var函数的翻译
For N-D arrays, VAR operates along the first non-singleton dimension of X.
VAR normalizes Y by N-1 if N>1, where N is the sample size. This is an unbiased estimator of the variance of the population from which X is drawn, as long as X consists of independent,identically distributed samples. For N=1, Y is normalized by N.
Y = VAR(X,1) normalizes by N and produces the second moment of the sample about its mean. VAR(X,0) is the same as VAR(X).
Y = VAR(X,W) computes the variance using the weight vector W. The length of W must equal the length of the dimension over which VAR operates, and its elements must be nonnegative. VAR normalizes W to sum to one.
Y = VAR(X,W,DIM) takes the variance along the dimension DIM of X. Pass in 0 for W to use the default normalization by N-1, or 1 to use N.
哪位英语高手帮我翻译这段话~~这是从help中copy过来的,有一小部分已经翻译过了,也知道var函数是用来求方差的,但是上面这些有点看不懂了,帮忙翻译一下~~
jerryppp1年前1
-
风的小翅膀 共回答了19个问题
|采纳率100%对于N-D数组, VAR沿第一个非一维X使用。
VAR由N-1正常化Y,如果N>1,其中N是样本大小。 这是人口的变化的一个无偏估计值由X得出,只要X包括独立同分布样本。 对于N=1, N.正常化Y。
Y = VAR (X, 1)通过由N正常化并且导致样品的二次矩。 VAR (X, 0)与VAR (X)是相同的。
Y = VAR(X, W)使用重量媒介W计算变化。 W的长度必须合计VAR经营维度的长度,并且它的元素一定非负。 VAR正常化归一至W。
Y = VAR (X, W,DIM)采取沿维度DIM通过X在0的到W的能由N-1使用缺省正常化或者1使用N。1年前查看全部
- matlab中如何画离散型的二维图
matlab中如何画离散型的二维图
递推公式X(n+1)=-0.01X(n)+X(n)^2,n取1,2,3,...,100的图像qinxjl1年前1
-
云知月 共回答了24个问题
|采纳率75%1年前查看全部
- matlab里 *和.*的区别.比如这个式子,y=2*exp(-0.5*x).*cos(4*pi*x).
楚天文具1年前2
-
深海淡水鱼鱼 共回答了22个问题
|采纳率86.4%matlab 里面 *是矩阵相乘,.*是数列对应位置的数相乘
a=[1 2 3]; b=[2 3 4];
a.*b
ans =
2 6 12
而a*b是错误的,
矩阵相乘要求 a 的列数 和 b的行数相等,返回矩阵行数等于a的行数,列数等于b的列数
而a和b之间有一个数是标量时,就是只有1x1时,*与.*等价
同理/是矩阵除法,而./是对应位置相除
a^2是矩阵平方,等价于a*a,要求a是方阵
a.^2是每个元素自己平方,等价于a.*a1年前查看全部
- 2009-5-15 如何用MATLAB 求微分方程d^y/d(x)^2+2*dy/dx +2y=0在满足y(0)=1,y
2009-5-15 如何用MATLAB 求微分方程d^y/d(x)^2+2*dy/dx +2y=0在满足y(0)=1,y(0)=
易bluetree1年前1
-
zjab 共回答了25个问题
|采纳率96%y = dsolve('(Dy)^2 + y^2 = 1','y(0) = 0')
y =
-sin(t)或者sin(t)
两个都可以1年前查看全部
- 如何用MATLAB把一个矩阵分解为另一个矩阵和其转置相乘?A=B*B‘ B’是B的转置
如何用MATLAB把一个矩阵分解为另一个矩阵和其转置相乘?A=B*B‘ B’是B的转置
A不是正定的,同时B不要求是三角阵jiang_kent1年前1
-
蜘之 共回答了15个问题
|采纳率93.3%B=chol(A)
若A=B*B',那么A必须是有条件的!1年前查看全部
- 运用MATLAB如何将一组矩阵的第一行元素取出来,形成一个新的矩阵
运用MATLAB如何将一组矩阵的第一行元素取出来,形成一个新的矩阵
遇到这样的一个问题:P为3行1列的矩阵
P(:,:,1)=[0 0 -1]’;
P(:,:,2)=[-0.02 0.5 1.35]';
P(:,:,3)=[-0.05 0.9 4]';
P(:,:,4)=[-0.1 1.8 6]';
P(:,:,5)=[-0.1 0.9 9]';
其中,将P中第一行的元素取出来,放进矩阵X中,形成一个1*5的X矩阵,如何实现?若P中的3个元素分别代表坐标(X,Y,Z)的值,怎么能画出关于这5个点的图像呢?
感谢2楼的回答,经过试验,实现了第一个目标(将P中第一行的元素取出来,放进矩阵X中,形成一个1*5的X矩阵).那么怎样将这些点的空间坐标的图像表示出来呢?这些点是电子散射的坐标值,要写做出电子轨迹的图像,该如何实现呢?aw2d01年前1
-
飞天可可猪 共回答了20个问题
|采纳率95%Q=squeeze(P); %%%将3维变2维3*5
x=Q(1,:);
y=Q(2,:);
z=Q(3,:);
plot3(x,y,z) %%%%我不能画点,只能将他们连成曲线1年前查看全部
- Matlab中x0=x0(:其中x0是一尺寸为1X3矩阵
i_zbca_7eut21a41年前1
-
chengjiachengli 共回答了15个问题
|采纳率86.7%将x0变为3X1的矩阵
即将x0转置
相当于x0=x0'1年前查看全部
- MATLAB中怎么产生六组A,B,C,D,E,F的随机排列
哈罗迪1年前1
-
野菊花的声音 共回答了16个问题
|采纳率87.5%a={'A','B','C','D','E','F'};
for i=1:6
a(randperm(length(a)))
end1年前查看全部
- matlab求解以下微分方程组!
qunersiyang99011年前3
-
悠然子云 共回答了14个问题
|采纳率85.7%1年前查看全部
- 请问一下如何用MATLAB画函数y=0.002*(1.0191).^t 的图像,要求分为五个阶段
请问一下如何用MATLAB画函数y=0.002*(1.0191).^t 的图像,要求分为五个阶段
第一个阶段从1~365,200~564,400~764,600~964,800~1095wangjun21年前2
-
佐相 共回答了22个问题
|采纳率95.5%t1=1:365;
t2=200:564;
t3=400:764;
t4=600:964;
t5=800:1095;
plot(t1,y);
hold on;
plot(t2,y);
hold on;
plot(t3,y);
hold on;
plot(t4,y);
hold on;
plot(t5,y);1年前查看全部
- 谁能帮我用MATLAB做一道数学题啊?很有挑战性的
谁能帮我用MATLAB做一道数学题啊?很有挑战性的
在正方形的四个顶点各有一个人,在某一时刻,四个人同时出发以匀速按顺时针方向追赶下一个人,如果他们始终保持对准目标,试确定每个人的行进路线夹夹桃1年前2
-
linchung 共回答了26个问题
|采纳率92.3%我做过这题.
我找找,用偏微分方程组.
ode45求解.1年前查看全部
- matlab中赋值a、b分别是100乘1的列向量,怎么赋值给x(i),比如说要x(1)=a.如果直接相等的话会出现 ?
matlab中赋值
a、b分别是100乘1的列向量,怎么赋值给x(i),比如说要x(1)=a.如果直接相等的话会出现
? In an assignment A(I) = B, the number of elements in B and
I must be the same.
冰山来客金桂1年前1
-
于乐知 共回答了22个问题
|采纳率81.8%写成 x(:,1)=a; 就可以了.
x(1)的话相当于是一个标量,而你的a是一个向量,所以就没法赋值了.1年前查看全部
- matlab中矩阵乘法,点乘,左右除的物理意义
狗狗青青1年前1
-
3434a211 共回答了23个问题
|采纳率82.6%我不明白什么是物理意义!
我只知道
乘法&右除:就是线性代数里面的矩阵之间的乘&除
点乘:就是同样维度的矩阵,对应位置的数相乘;
例如说a=[1 2 3];b=[2 3 4];a.*b=[2 6 12];
至于左除:我个人感觉是因为矩阵的运算不具有交换律,所以在解方程或者运算时,引入左除可以更方便;
例如:三元方程组A*x=b;
A=[ 1 2 3;2 1 4;3 2 9];b=[3 5 2]';
那么x=Ab;则可以直接求出x的值.
当然也可以写成x=A^(-1)*b=inv(A)*b.
不过有时候左除的矩阵不存在逆阵时,这种算法就方便多了!1年前查看全部
- Matlab 作函数的图像 y=(ln√1+x^2)+x
lwcx19811年前1
-
ranbay 共回答了23个问题
|采纳率95.7%matlab中绘图函数很多,下面我提供三种方法1.plot函数x=-10:0.1:10;y=log(sqrt(1+x.^2))+x;plot(x,y)2.ezplot()ezplot('log(sqrt(1+x^2))+x',[-10 10])3.fploty=@(x)log(sqrt(1+x.^2))+x;fplot(y,[-10 10])%by dynami...1年前查看全部
- 一个函数中有两个变量,如何在matlab的同一张图上生成分别对于两个变量的函数图形?
一个函数中有两个变量,如何在matlab的同一张图上生成分别对于两个变量的函数图形?
d和w的取值范围均为0到8,变化量为0.dongdong10071年前1
-
zhangy067 共回答了17个问题
|采纳率100%1年前查看全部
- 求英语高手帮翻译一句话,急!提出两个基于二维DCT变换的边缘检测算法,用Matlab实现各种边缘检测算法、比较并分析以上
求英语高手帮翻译一句话,急!
提出两个基于二维DCT变换的边缘检测算法,用Matlab实现各种边缘检测算法、比较并分析以上各种算法的优劣性.niba91年前5
-
anniehenin 共回答了21个问题
|采纳率90.5%come up with two edges detection algorithm based on two-dimensional DCT transform,use The Matlab to achieve the algorithm of all sorts of edge detection ,and compare and analysis the superiority of the kinds of the above algorithms
come up with赶上;提出;想出
edges detection algorithm 边缘检测算法
the superiority of优势1年前查看全部
- 一元多次方程求解:53*x^6-775*x+722=0,请帮助matlab算一下全部根,
aauqqq0001年前1
-
八百壮士 共回答了13个问题
|采纳率84.6%-1.5309 + 1.0234i
-1.5309 - 1.0234i
0.3534 + 1.6851i
0.3534 - 1.6851i
1.3551
1.00001年前查看全部
- matlab 泊松分布随机数的产生与测量:产生 的10000个泊松分布随机数,计算它们的均值、方差与概率密度、频谱、功率
matlab 泊松分布
随机数的产生与测量:产生 的10000个泊松分布随机数,计算它们的均值、方差与概率密度、频谱、功率谱密度,自相关函数,并绘出函数曲线.确定泊松过程是一个马尔可夫过程han1316661年前1
-
缺月孤楼 共回答了21个问题
|采纳率100%举个例子:
lambda = 2;
r = poissrnd(lambda,10000,1);
mean(r) % 均值
var(r) % 方差
y = poisspdf(r,lambda); % 概率密度
...功率谱应该可以用psd函数,自相关用xcorr,画图用plot...
依次往下算就是了.1年前查看全部
- 请问如何用matlab进行下面类似的方程拟合?
请问如何用matlab进行下面类似的方程拟合?
公式为x=(a*b*c*y)/(a*y+b)+c ,其中x,y为对应的两组数列,请问
在matlab中如果求出a,b,3339031年前1
-
黄毛小子 共回答了13个问题
|采纳率100%用nlinfit(非线性回归)
abc分别设为beta(1)、beta(2)、beta(3)
最好给出x和y来,以及abc的大概初值.
参考一下我以前的1年前查看全部
- matlab高手求救:1.小李给她的N个朋友写信,写好后分别将各封信放入N个信封中,并在每一个信封上分别任意写上N个收信
matlab高手求救:
1.小李给她的N个朋友写信,写好后分别将各封信放入N个信封中,并在每一个信封上分别任意写上N个收信人中的一个地址(不重复),求至少有一个写正确的概率,并选取特定的若干个N,编写程序进行模拟实验,分析实验结果.
2.公共汽车站每隔5s有一班汽车通过,乘客到达汽车站的任一时刻都是等可能的,求乘客等车不超过3s的概率,并进行模拟实验.
3.1).有一个粒子放在平面上某一点,试作图显示粒子移动的轨迹,假设:
(1)粒子在平面上不受任何外力作用.
(2)粒子的运动轨迹在一平面上.
(3)粒子在平面上的运动时随机的.
(4)不考虑粒子质量.
(5)粒子在每单位时间随机移动一步,此步在横轴两个方向上分解得到的值都在-1与1之间.
2).分析:粒子在平面上每一步移动都是随机的,每一步的移动可简化为平面上一个点(该步移动的起点)在横坐标与纵坐标上分别产生一个-1到1之间的随机增量得到一个新的点(该步移动的终点),两点之间的线段即为粒子在该步移动的轨迹.选取初始点为坐标原点,通过随机数产生出一系列点,画出点与点之间的线段,即可得到粒子移动的轨迹图.
3)、问题的解决:由上面的分析,要想画出粒子的移动轨迹图,首先必须得到粒子由一点随机移动到另一点的坐标,而该坐标涉及两个随机数.
4)
提示:可通过以下几步完成.
(1) 选择粒子的起始位置为坐标原点.
(2) 生成两个-1与1之间的随机数,作为新点产生的横坐标和纵坐标的增量,从而得到新点的坐标,画出连接两点的线段,即得到第一步移动的轨迹.
(3) 以新点为始点,重新进行第二步,直到你认为选出的点足够为止.
注:编写程序时也可以事先指定移动的次数,通过循环语句实现Bee19861年前3
-
lr494 共回答了18个问题
|采纳率94.4%tainanle1年前查看全部
- 用matlab求fibonacci数列的解(n=20)Fn=Fn-1+Fn-2,其中F1=1,F2=2
cd19841年前1
-
女朋友uu 共回答了18个问题
|采纳率88.9%F(20)=6765
--------------------------------
代码如下:
N=20
F=ones(1,N);
for i=3:N
F(i)=F(i-1)+F(i-2);
end
F(N)1年前查看全部
- matlab用龙格库塔法求解微分方程组
matlab用龙格库塔法求解微分方程组
题目是这样的:
将微分方程组重写为一阶以后是这样的
初始矢量
不知道在matlab中应该怎么写,
分数不多,但是是我有的全部了 TATlovercn_10011年前1
-
imzhm 共回答了13个问题
|采纳率84.6%解方程很简单,调用ode45即可
关键是求运动时间,假设z方向坐标变为0即为落至地面运动结束,可求得运动时间的近似值及落地点坐标
代码如下:
clear all
clc
c=0.07;
u0=25;
a=pi/6;
f=@(t,x)([x(2);
-c*sqrt(x(2)^2+(x(4)-7-.35*x(5))^2+x(6)^2)*x(2);
x(4);
-c*sqrt(x(2)^2+(x(4)-7-.35*x(5))^2+x(6)^2)*(x(4)-7-.35*x(5));
x(6);
-9.81-c*sqrt(x(2)^2+(x(4)-7-.35*x(5))^2+x(6)^2)*x(6)]);
[t,Y]=ode45(f,0:.01:2,[0 u0*cos(a) 0 0 1.4 u0*sin(a)]);
n=max(find(Y(:,5)>0));
t_end=t(n)
s=[Y(n,1),Y(n,3),0]
plot3(Y(1:n,1),Y(1:n,3),Y(1:n,5))
其中t_end为运动时间
s为落地点坐标
看了半天,怎么都觉得方程不太对
再检查一下方程吧,尤其是第二个方程等号右边到底有没有负号
最后一个方程等号右边也有问题,请仔细检查1年前查看全部
- 求大神翻译下列Matlab语句啊(最好每句都翻译啊).
求大神翻译下列Matlab语句啊(最好每句都翻译啊).
clear;
tic;
imgname='1.bmp';
wavename='haar';
mode='per';
[x,map]=imread(imgname);
figure(1);
subplot(2,2,1);imshow(x);
title('原图');
r=x;
xx=histeq(r);
subplot(2,2,2);imshow(xx);
title('增强后的图像');
deccof=struct('ca',[],'ch',[],'cv',[],'cd',[]);
reccof=struct('rx',[]);
sx=size(xx);
nbcol=size(map,1);
dx=xx;
deccof(1).ca=xx;
[deccof(2).ca,deccof(2).ch,deccof(2).cv,deccof(2).cd]=dwt2(dx,wavename,'mode',mode);
figure(2);imshow([deccof(2).ca/255,deccof(2).ch/255;deccof(2).cv/255,deccof(2).cd/255;]);
title('小波分解');
am=deccof(2).ca/255;
figure(1);
subplot(2,2,3);imshow(am);
title('近似分量');
L=size(am,1);
W=size(am,2);
N=L*W;
[Count Ret]=imhist(am);
Pi=Count'./N;
g=[];
for t=0:255
w0=sum(Pi(1:t+1));
w1=1-w0;
mu0=sum(Pi(1:t+1).*(0:t))/w0;
mu1=sum(Pi(t+2:256).*(t+1:255))/w1;
mu=sum(Pi(1:256).*(0:255));
g=[g w0*w1*(mu0-mu1)^2/(w1*(mu0-mu)^2+w0*(mu1-mu)^2)];
end
[Ret1 T ]=max(g);
T1=T;
T=num2str(T-1);
disp(['最佳灰度threhold: ' T]);
I1=im2bw(am,T1/255);
figure(1),subplot(2,2,4);imshow(I1);
title('阈值分割后的图像');
u=idwt2(I1,deccof(2).ch/127,deccof(2).cv/127,deccof(2).cd/127,wavename,'mode',mode);
figure(3),imshow(u);title('小波分割图像')
好贴我顶1年前1
-
ithinkforever 共回答了15个问题
|采纳率86.7%clear; %清除所有变量
tic; %保存当前时间,再用toc来记录完成时间,以此计算程序运行时间
imgname='1.bmp'; %待处理图像文件名
wavename='haar'; %小波基函数
mode='per'; %小波变换模式 periodization
[x,map]=imread(imgname); %读入图像,像素值在x中,颜色映射表在map中
figure(1); %绘图窗口1
subplot(2,2,1);imshow(x); %绘图窗口1分为2x2,在第一部分显示读入的图像
title('原图'); %绘图标题
r=x; %复制一份图像数据
xx=histeq(r); %图像直方图均衡化
subplot(2,2,2);imshow(xx); %在绘图窗口1的第二部分显示均衡化后的图像
title('增强后的图像'); %绘图标题
deccof=struct('ca',[],'ch',[],'cv',[],'cd',[]); %创建结构,用来保存小波变换结果
%ca:近似分量
%ch:水平细节分量
%cv:垂直细节分量
%cd:对角细节分量
reccof=struct('rx',[]); %创建结构
sx=size(xx); %获得图像大小
nbcol=size(map,1); %获得颜色映射表长度
dx=xx; %复制一份图像数据
deccof(1).ca=xx;
[deccof(2).ca,deccof(2).ch,deccof(2).cv,deccof(2).cd]=dwt2(dx,wavename,'mode',mode); %对图像dx进行二维离散小波变换
figure(2);imshow([deccof(2).ca/255,deccof(2).ch/255;deccof(2).cv/255,deccof(2).cd/255;]); %绘图窗口2,显示小波变换结果
title('小波分解'); %绘图标题
%绘图窗口1,第三部分绘制近似分量
am=deccof(2).ca/255;
figure(1);
subplot(2,2,3);imshow(am);
title('近似分量');
%对近似分量进行处理
L=size(am,1); %获得图像长度
W=size(am,2); %获得图像宽度
N=L*W; %像素点数
[Count Ret]=imhist(am); %获得图像的直方图,Count为直方图灰度级数量
Pi=Count'./N;
%以下计算各灰度级出现的概率
g=[];
for t=0:255
w0=sum(Pi(1:t+1));
w1=1-w0;
mu0=sum(Pi(1:t+1).*(0:t))/w0;
mu1=sum(Pi(t+2:256).*(t+1:255))/w1;
mu=sum(Pi(1:256).*(0:255));
g=[g w0*w1*(mu0-mu1)^2/(w1*(mu0-mu)^2+w0*(mu1-mu)^2)];
end
[Ret1 T ]=max(g); %获得灰度分布的峰值
T1=T;
T=num2str(T-1);
disp(['最佳灰度threhold:' T]);
I1=im2bw(am,T1/255); %以得到的灰度峰值作为阈值进行灰度变换
figure(1),subplot(2,2,4);imshow(I1); %绘图窗口第四部分显示该图像
title('阈值分割后的图像');
%灰度变换以后再进行小波反变换
u=idwt2(I1,deccof(2).ch/127,deccof(2).cv/127,deccof(2).cd/127,wavename,'mode',mode);
figure(3),imshow(u);title('小波分割图像') %显示反变换后得到的图像1年前查看全部
- matlab 这个怎么写a=[0,2]如果a=1 u=1
音乐CJM1年前1
-
柠檬126 共回答了12个问题
|采纳率83.3%u=ones(size(a));
igai=find(a1年前查看全部
- 用MATLAB解一道题
心蓝8301年前2
-
vsszcn 共回答了24个问题
|采纳率95.8%f(1)=1;
f(2)=1;
for i=3:10; %根据你的需要改写循环的终点,可以把10改成你想要的数字
f(i)=f(i-1)+f(i-2);
end
disp('f=')
f
disp('f(10)=')
f(10)
以下是运行结果:
f =
1 1 2 3 5 8 13 21 34 55
f(10)=
551年前查看全部
- matlab中fix()干什么用的
珠光宝气1年前1
-
深蓝ww 共回答了24个问题
|采纳率91.7%FIX(X) rounds the elements of X to the nearest integers towards zero.
向0靠拢取整,例:
>> fix(3.2)
ans =
3
>> fix(3.7)
ans =
3
>> fix(-3.7)
ans =
-3
>> fix(-3.2)
ans =
-31年前查看全部
- MATLAB求微分方程组 并作图
MATLAB求微分方程组 并作图
dx/dt=a*b*c(1-c/y)
dy/dt=d*m(1-n*x/y+p)
其中,a,b,c,d,m,n,p都为常数.
且,a,b,c,d,m都是正整数,0wang_my20001年前1
-
gaolaotom007 共回答了23个问题
|采纳率82.6%你是要画图还是求a=?时可以使两式相等?另外你说两式相等是说x(t) = y(t)还是dx/dt = dy/dt?
dsolve可以解微分方程组,ode45可以数值地解微分方程组,你需要数值解还是解析解?1年前查看全部
- matlab 中 一个5行5列的矩阵 怎么输出矩阵的前二行 或者前三行
1991zkq1年前1
-
xjftest 共回答了21个问题
|采纳率95.2%a=[1,2,3,4,5;1,2,3,4,5;1,2,3,4,5;1,2,3,4,5;1,2,3,4,5;]
a =
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
>> a(:,2)
ans =
2
2
2
2
2
>> a(:,1:2)
ans =
1 2
1 2
1 2
1 2
1 2
>> a(1:2,:)
ans =
1 2 3 4 5
1 2 3 4 5
>>
逗号前面的代表行,后面的代表列 .m:n表示从m到n.1年前查看全部
- 一题方程式 求用MATLAB跑图
panxuejun1231年前1
-
constantine_li 共回答了19个问题
|采纳率89.5%syms x(t) delta a t0
dsolve(diff(x)==-x+delta*sin(t),x(t0) == a)1年前查看全部
- 将方程化为等价的一阶方程组将此方程化为1阶方程组,.用matlab可以实现吗并用经典4阶R-K方法和Nystrom Me
将方程化为等价的一阶方程组
将此方程化为1阶方程组,.
用matlab可以实现吗
并用经典4阶R-K方法和Nystrom Methods进行数值求解coffee0081年前2
-
健康才是福气 共回答了17个问题
|采纳率88.2%北理熊老师:作业自己做,不会自己看看书就会了,很简单...发现抄袭,一律扣分~1年前查看全部
- 用matlab画函数图像:1/(1-x+20/x)
用matlab画函数图像:1/(1-x+20/x)
错了,函数是 y = 1 / (1 - x + x / 20)天堂的便当1年前0
-
共回答了个问题
|采纳率
- 利用matlab计算:3x+4y-7z-12w=4,5x-7y+4z+3w=-3,x+8z-5z=9,-6x+5y-2z
利用matlab计算:3x+4y-7z-12w=4,5x-7y+4z+3w=-3,x+8z-5z=9,-6x+5y-2z+10w=-8
shoutinwind1年前1
-
w5752390 共回答了16个问题
|采纳率81.3%你的第三个方程为:x+8z-5z=9,我把它改成x+8z-5w=9>> A=[3,4,-7,-12;5,-7,4,3;1,0,8,-5;-6,5,-2,10];>> b=[4;-3;9;-8];>> x=Ab得到解为:x =-1.0534-0.45960.5775-1.0867上述四个值从上到下,分别为x,y,z,w...1年前查看全部
- Matlab s=solve('x(e^(1/(y*26))-1)=1','x(e^(1.5/(y*26))-1)=80
Matlab
s=solve('x(e^(1/(y*26))-1)=1','x(e^(1.5/(y*26))-1)=80');s.x,s.y
Error using ==> mupadmex
Error in MuPAD command:cannot differentiate equation [numeric::fsolve]
Error in ==> sym.sym>sym.mupadmexnout at 2018
out = mupadmex(fcn,args{:});
Error in ==> solve at 76
[symvars,R] = mupadmexnout('symobj::solvefull',eqns,vars);
帮我看一下是什么错误,顺便帮我解一下这个方程组,
我不会用matlab,所以只把方程组解了也可以,
'x(e^(1/(y*26))-1)=1',
'x(e^(1.5/(y*26))-1)=80yama11251年前1
-
水恋语 共回答了29个问题
|采纳率86.2%s=solve('x*(exp(1/(y*26))-1)=1','x*(exp(1.5/(y*26))-1)=80');
s.x,s.y
结果:
s =
x:[1x1 sym]
y:[1x1 sym]
>> s.x
ans =
0.00015632267679000363133741067619345
>> s.y
ans =
0.00438871058068997110032102658562821年前查看全部
- 再帮我用Matlab解一下这道题吧
BJEY我的梦1年前1
-
0000147 共回答了19个问题
|采纳率94.7%x = 1:6;
y = [3 6 7 4 2 8
6 7 3 2 4 7
9 7 2 5 8 4
6 4 3 2 7 4];
figure;
bar(x,y');1年前查看全部
- matlab 如何计算三角形的中心
dw68224731年前1
-
zhangchenjing 共回答了21个问题
|采纳率95.2%正三角形?1年前查看全部
- Matlab解非线性方程组~在线急等~~~
Matlab解非线性方程组~在线急等~~~
h和a为两个系数
方程如下:z^2/1.5^2+y^2=1
y*tan(a)+z-h-2*tan(a)+1.5=0
求y.(把y用h和a表示)呆板厂1231年前1
-
漓江惜雨 共回答了15个问题
|采纳率86.7%syms x y z h a
eq1=z^2/1.5^2+y^2-1;
eq2=y*tan(a)+z-h-2*tan(a)+1.5;
d=solve(eq1,eq2)
d.y1年前查看全部
- matlab 矩阵变换的问题A=[1 3;1 4;2 5;2 8] 找出把第一列的值为2的元素所在的行,并把该行第二列元
matlab 矩阵变换的问题
A=[1 3;
1 4;
2 5;
2 8] 找出把第一列的值为2的元素所在的行,并把该行第二列元素提取出来,组成一个向量,结果为[5 8]
Ps:A为简易矩阵,实际矩阵有上万行tianshanzhaoyang1年前1
-
pxsjpxsj 共回答了18个问题
|采纳率100%B=A(find(A(:,1)==2),2)1年前查看全部
- 【在线等】matlab解方程!方程为:20*log10(x)+0.0003*x=80求x
逆向的思维1年前1
-
快乐柠檬 共回答了24个问题
|采纳率91.7%solve即可1年前查看全部
- 如何用matlab求sin(n*x)的积分
nd_myc0_9_xf56bb1年前3
-
凝溶17 共回答了19个问题
|采纳率78.9%syms x n
>> int(sin(n*x),'x')
ans =
-1/n*cos(n*x)
1年前查看全部
- matlab 中有这样一个函数么?求一列数据中的相邻数据之间的间隔的最大值,及范围?
matlab 中有这样一个函数么?求一列数据中的相邻数据之间的间隔的最大值,及范围?
例如:r=[1.2 3.1 4.5 9.87 10.0],最大间隔就是9.87-4.5,范围就是4.9.87旷世邪神1年前1
-
明珠泪儿 共回答了17个问题
|采纳率94.1%d=diff(r);%生成间隔
dmax=max(d);%最大间隔
dmin=min(d);%最小间隔1年前查看全部
- MATLAB怎么创建一个136*136矩阵,对角线为16*16的1矩阵.例子如下:
MATLAB怎么创建一个136*136矩阵,对角线为16*16的1矩阵.例子如下:
例如:A=[1 1 0 0 0 0 0 0;0 0 1 1 0 0 0 0;0 0 0 0 1 1 0 0; 0 0 0 0 0 0 1 1];是一个 8*8的矩阵.主对角线是以B=[1 1;1 1];小啊白1年前1
-
hh男是差 共回答了18个问题
|采纳率94.4%使用这个语句就行了
A=ones(16);
B=blkdiag(A,A,A,A,A,A,A,A,ones(8));
由于136不是16的倍数,最后的部分不是16*16的,而是8*8的1年前查看全部
- 用matlab 求2/sin(x)+3/cos(x)的最小值,可以笔算也可以;
℡瓍丬頨1年前0
-
共回答了个问题
|采纳率
- 10rsinθ+12θ/ π=12用matlab画出这个方程的图形,用极坐标
rockid_19851年前0
-
共回答了个问题
|采纳率
- 在MATLAB中Bessel函数怎么表示计算
elan03251年前2
-
无崖鸟 共回答了7个问题
|采纳率85.7%MATLAB提供了计算贝塞尔函数的函数,具体包括:besselj - 第一类贝塞尔函数,或简称贝塞尔函数;bessely - 第二类贝塞尔函数,又称诺伊曼函数(Neumann function);besseli - 第一类修正贝塞尔函数;besselk - 第二类修正贝塞尔函数;besselh - 第三类贝塞尔函数,又称汉克尔函数(Hankel function). 这几个函数的调用语法基本相同,例如J = besselj(nu,Z)J = besselj(nu,Z,1)[J,ierr] = besselj(nu,Z) 其中,nu为贝塞尔函数的阶数,Z为函数自变量.阶数必须为实数,但Z可以是复数. 值得一提的是,上述函数是MATLAB基本模块(也就是说不需要任何附加的工具箱)提供的特殊函数,采用数值方法计算;而符号数学工具箱则提供了第一和第二类的4个贝塞尔函数,名称和调用方式都与MATLAB基本系统的4个函数完全一致,但支持微分、积分等符号运算.1年前查看全部
- 用matlab解决方程与积分问题
用matlab解决方程与积分问题
怎么用matlab 解这个积分 ((1-0.25*x^2)/(1-x^2))^0.5 还有怎么用matlab解这个方程 2^x-2*x^2-1=0诚实的狐狸13241年前1
-
surgoenhuang 共回答了19个问题
|采纳率89.5%syms x
>> int((1-0.25*x^2)/(1-x^2)^0.5,x)
ans =
(7*asin(x))/8 + (x*(1 - x^2)^(1/2))/8
>> solve('2^x-2*x^2-1=0')
ans =
01年前查看全部
- 用MATLAB解方程 N=-27068*a+11508 代入N=36914 求出a~
hlsf20081年前1
-
黑菜白 共回答了18个问题
|采纳率100%N=36914;
>> a=solve(' N=-27068*a+11508');
>> subs(a)
ans =
-0.93861年前查看全部
大家在问
- 1从1234这四个数字中任意抽取两个不同数字组成一个两位数字则这个数字能被3整除的
- 2一只标有220V880W的电热水器,接在家庭电路中使用了10min,求
- 3给下面的字添上或添掉一笔,或者把某一笔画稍加变化,变为另外一个字,再组成词语.
- 4求解【某人去某城市旅行,参考旅行路线,A中国交通图 B地形图 C该市市区地图 D中国地图】
- 5甚嚣尘上的成语释义
- 6请问底面积多大的混凝土基柱能承受2米长、60厘米宽、20吨的物体?
- 7莲子的子字的拼音是第三声还是轻声吗
- 8照样子写句子 :太阳已经西斜,收起了刺眼的光芒.
- 9若把三角形的底扩大为原来两倍高缩小原来的二分之一,面积不变对吗?
- 10已知正项数列{an},其前n项和Sn满足10Sn=an2+5an+6,且a1,a3,a15成等比数列,求数列{an}的通
- 11为什么要进行模拟信号转换成数字信号
- 12一物体做自由落体运动.从下落开始计时,重力加速度g取10m/s2.则物体在第5s内的位移为( )
- 13学校进购一批图书把他的1/5分给六年级后剩下的按3:已知五年级分得了75本,那么这批图书共
- 14我看了一会儿,这道题是这样的.小明家和小光家相距840米.一天,小明和小光同时从
- 15把面面相觑写成俗语 恨不得有条地缝转进去写成成语 把望眼欲穿写成俗语 把过了这个村遇不上那个店写成成语