matlab的问题,现有一个matlab程序,求如何将它跑起来。

matlab的问题,现有一个matlab程序,求如何将它跑起来。,第1张

题主在MATLAB中先切换到上图对应的文件夹,然后输入demo命令试试。

如果不行,建议把文件打包传到网盘,我再帮你看。

===============================

根据题主贴出的代码,补充如下:

1、程序的根目录下有readmemd文件,这是一个文本文件,里面有相关的说明,建议阅读一下。

2、本程序使用了C++代码,使用之前需要将其根据 *** 作系统进行编译。作者已经编译了Win32 和OSX64版本,并在Win7和OSX109上进行了测试。

我在XP上测试也可以正常使用。如果题主使用其它 *** 作系统,而且运行程序出现问题,解决起来相对可能就会比较麻烦了,涉及到安装配置C++编译环境,暂且不考虑这种情况,遇到问题再说吧。

3、顺利的情况下,在MATLAB中直接切换到程序所在文件夹,运行demo就能演示软件的功能。

运行demo会对Images文件夹中的进行处理,其中一个的结果如下:

1th scale at resolution [45, 60] 

 Elapsed time is 0319034 seconds

i =

     1

2th scale at resolution [75, 100] 

 Elapsed time is 2331860 seconds

i =

     2

3th scale at resolution [105, 140] 

 Elapsed time is 5717460 seconds

i =

     3

ok

ok

ok

ok

ok

ok

ok

ok

ok

ok

ok

press a key to continue 

楼上的回答存在问题。

诚然,Mathematica在符号运算方面总体上优于MATLAB,推荐使用Mathematica没问题;但楼上关于MATLAB符号运算的说法却纯粹是想当然,像这样误导人的做法以后还是应该少一些。

其实,当solve返回多个输出参数的时候,其顺序是按照字母表顺序,而不是你通过输入参数指定的变量顺序,也不是楼上所说的按照变量出现的先后顺序。所以不小心很容易搞错(对于当前这个例子没问题)。

从solve函数的说明中摘录一段:

>> help solve

SOLVE  Symbolic solution of algebraic equations

     

    Three different types of output are possible  For one equation and one

    output, the resulting solution is returned, with multiple solutions to

    a nonlinear equation in a symbolic vector  For several equations and

    an equal number of outputs, the results are sorted in lexicographic

    order and assigned to the outputs  For several equations and a single

    output, a structure containing the solutions is returned

现在应该明白怎么做了吧?调用时应该是

[t,x,y,z] = solve(f,g,h,k);

再检验一下结果看看:

f=simple(subs(f))

g=simple(subs(g))

h=simple(subs(h))

k=simple(subs(k)) 

f = 

g =

h =

k = 

0

比 较好的做法是返回一个输出参数,该参数为结构体,然后再获得结构体的域即可:

s=solve();

fns = fieldnames(s);

for i=1:length(fns)

    eval([fns{i} '=s' fns{i}]);

end

在MATLAB中同样也可以用一个命令解决:

>> s=solve('x+z-a', '(2^(1/2)mx)/2 + (2^(1/2)my)/2+(2^(1/2)mt)/2 - (2^(1/2)mz)/2-b', 'm^2(y- t)-m^2c', '(2^(1/2)m^3(y-x+z+t))/2-m^2d')

s =

    t: [1x1 sym]

    x: [1x1 sym]

    y: [1x1 sym]

    z: [1x1 sym]

后面用st、sx之类的符号就可以引用求得的结果了。

这些都很简单,都是matlab的基本编写。首先第一个问题,你要说清楚生成什么矩阵。要不没办法写。

2t=0:1:10;%生成向量

y=sin(2pit); %赋值

A=diag(y);%变成对角矩阵

3 y=hib(5);%生成一个5阶希尔伯特矩阵

x=y(1,:);%取第一行,其它的行或列,我想你应该会照葫芦画瓢

rot90(x)%旋转90度

fliplr(x)%左右翻转

rank(x)%求秩

4 x=b\A

5A=rand(5,6)%生成一个0~1的随机数

[m n]=size(A);

b=A(:,find((sum(A>02)==m)[1:n])) %找出大于02的列写不全,你自己改改吧

你自己看看matlab书,这些都特别简单。

fid=fopen('mashitxt','r'); //打开txt文件

a=[]; //对 a 赋初值

while (~feof(fid)) //未到文件末则读一行,添加到a,最后的a是一个行向量

a=[a fgetl(fid)];

end

for i=0:1

for j=0:1

s=[int2str(i),int2str(j)]; // s存在00、01、10、11四种情况

f(i+1,j+1)=length(findstr(s,a));

// f(1,1) 记录a中状态转移为 00 的总数

// f(1,2) 记录a中状态转移为 01 的总数

// f(2,1) 记录a中状态转移为 10 的总数

// f(2,2) 记录a中状态转移为 11 的总数

end

end

以上就是关于matlab的问题,现有一个matlab程序,求如何将它跑起来。全部的内容,包括:matlab的问题,现有一个matlab程序,求如何将它跑起来。、MATLAB程序问题、matlab程序问题 急 希望热心的好人帮我在2010年10月13日之前解答等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10627880.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存