全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
5182 16
2007-12-28

下面是我在学习过程中遇到的一些小问题,有些可能是非常简单的,属于比较弱智的类型,如果你碰巧知道,希望不吝赐教!根据我想知道的急切程度,每个小问题都标有一定数量的金币。任何有价值的提示也会奖励一些金币表示感谢(1金币=100论坛币)

要查看已解决的问题点这里

8、能解自定义函数的方程吗? (15金币)
现在已定义函数y
---------------y.m------------
function y=y(x)
% Y.m file : Generate y from x
x=x(:);
y=x.^2;
return
------------------------------
已知在y0=[1,2,3,4,5]
现在要求y(x)=y0的解x0,我该怎么做?
9、一些矩阵元素的操作。(15金币)
(1)去除集合中所以小于0的元素,构成所以大于0的集合。比如A=[1,-3,2,-6],去除小于0的元素后生成集合A1=[1,2]
(2)在已知集合中加入某一元素。并指定加入的位置。首先加在最前面,然后加在最后面。
(3)如何让一集合中的元素从小到大排列?
10、求基尼系数的计算程序,任给定一组数据,计算出其基尼系数!(25金币)一年前我用过的,不过好像是eview的,而且现在找不到了,觉得应该是个比较常用的工具,用matlab写的)


[此贴子已经被作者于2008-1-13 10:58:31编辑过]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2007-12-28 23:29:00
Xaero's Solution:
1-1:
第二种做法是错误的,
syms a b x
%这句表示a b x 被声明为符号变量
a=1;
%表示 a在此被赋值为1, 注意不再是符号变量了!!!
[x]=solve('a*x+b',x);
%这样解可以解出来, 原因是用上引号后, 引号中的 a b x字符都被当作符号变量来做,
[x]=solve(a*x+b,x);
%这个里面的式子中 a是1, b喝x是符号变量,
1-2:
这里的正确做法是: subs(x,a,1)

2-1:
如果你用的是Matlab自带的mEditor 来编辑程序, 那么直接按 F5键就可以运行了.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-12-28 23:53:00

clear all
syms a b x
[x]=solve('a*x+b',x);

%此处加引号与语句 x = solve(a*x+b,x)一样,因为你已经声明a,b,x为变量了.

%结果变量x=-b/a.

%也可以用语句 x = solve('a*x+b','x'),此语句结果只产生变量x。

a=1; %此赋值语句使变量a为1,a即为一数值变量。

x    %x为符号变量值为-b/a,上一对a的赋值语句x没有影响。

第二
clear all
syms a b x   %声明a,b,x为符号变量
a=1;         %a已为数值变量值为1,b,x仍为符号变量
[x]=solve('a*x+b',x);

%加引号是解符号表达式ax+b=0,结果x=-b/a;

%去掉引号后,因a=1,故解方程x+b=0,结果x=-b
x

如果既要解的表达式,又要a=l时的解,一种方法是用替换命令subs

>>x = solve('a*x+b','x')

>>xa = subs(xa,'a',1)

M文件的运行:

如果是脚步文件,快捷件是F5,当然也可以用鼠标了。

如果是函数问题,因为要有输入变量值,一般是在MATLAB的命令窗口里面调用的。

[此贴子已经被作者于2007-12-28 23:53:56编辑过]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-12-29 01:01:00

问题1、2已解决,谢谢Xaero,confch

[此贴子已经被作者于2007-12-29 1:29:53编辑过]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-12-29 09:35:00
3-1,
你之所以会出现这个问题, 是因为 eq2=y 这个式子太简单了, 计算机不知道你想把 eq2定义成一个 符号变量 还是一个 符号表达式, 只要把这个式子复杂一下就可以了, 或者把 eq1 , eq2的定义换一下:
eq2=x+y-1;
eq1=y;
搞定
4-1:
MATLAB 语言的赋值语句有两种:
变量名 = 运算表达式
[返回变量列表] = 函数名(输入变量列表)
所以要直接赋值多个变量组成的列表应该只能在函数的返回值列表中直接赋值, 而不能对运算表达式赋值.
(To be revised)
5-1:
axis([0,1,0,1])
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-12-30 10:43:00
4、现在有矩阵A=[1,2],我想将A的第一个元素赋值给x1,A的第二个元素赋值给x2,我只能一个一个的弄吗?比如x1=A(1);x2=A(2),我能一次给这两个变量赋值吗?比如[x1,x2]=A,但我如果这样做的话matlab里会提示出错,有没有什么办法解决。(4金币)

无法解决,[x,y]=A, matlab的语法要有普适性,“[x,y]=A”matlab的编译器不知道A的那几个元素给x,那几个给y.

还有x1=A(1);x2=A(2),我觉得本身就没有意义, 参数可以存在中数组,只要调用的时候知道调用的是数组参数中的哪个就行了

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群