晓夜寒风 发表于 2009-8-14 21:59:46

【转载】matlab 学习点滴

在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数;a=1:500;
b=a(find(rem(a,3)==2));
c=b(find(rem(b,5)==3));
d=c(find(rem(c,7)==2));
disp('在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数:')
disp(d)在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数:
23   128   233   338   443

晓夜寒风 发表于 2009-8-14 22:01:57

matlab上标标注subplot(1,1,1);
x=0:0.1:2*pi;
y1=sin(x);
y2=exp(-x);
plot(x,y1,'--*',x,y2,':o');
xlabel('x=0 to 2\pi');
ylabel('values of sin(x) and e^{-x}');
title('function plots fo sin(x) and e^{-x}');
legend('sin(x)','e^{-x}');

晓夜寒风 发表于 2009-8-14 22:02:46

请问在matlab里面怎么把一个三段的分段函数表示出来呢f(x)=x-1 (x>1);f(x)=0 (abs(x)<1);f(x)=x+1 (x<-1)
1)x=[-10:1:10];
for i=1:21
f(i)=(x(i)-1)*(x(i)>1)+(x(i)+1)*(x(i)<-1);
end
plot(x,f,'r*')
2)x=[-10:10];
f=zeros(size(x));
a=x>1;
b=x<-1;
f(a)=x(a)-1;
f(b)=x(b)+1;
3)f(x)=(x-1).*(x>1)+0.*(abs(x)<1)+(x+1).*(x<-1)

晓夜寒风 发表于 2009-8-14 22:06:27

Q1: 对于x = ' 随机产生一个数a = rand
怎么样把大于a的第一个x(i)选出来?x = '
a=rand;
k=find(x>a);
x(k(1))Q2: 如何从列矩阵(n*1)中分段截取数据组成新的矩阵?比如用列矩阵a的前k个数据组成一个新的列矩阵b?中间k个呢?b=a(1:k);
b=a(l:l+k); (l+k<=n)
Q3: 如何将NaN以外的8个数加起来,然后求这8个数的平均数。mean_a=mean(a(~isnan(a)))Q4 matlab里面怎么将符号常数变为数值syms x;x1=solve('x+1=2','x');
if double(x1)>1   
x=1
else   
x=0
end

晓夜寒风 发表于 2009-8-14 22:07:12

Q5: MATLAB中用pie命令画饼图function PlotPie
x=;
y=;
str1={'A','B','C','D','E','F','G','H','I','J'};
por=y./sum(y);
for i=1:length(por)   str{i}=;
end
pie(x,y,str)

晓夜寒风 发表于 2009-8-14 22:07:38

Q6 非线性拟和y=a*x^b+c的程序,求a,b,c.
function FitPaperData
format long
E1=rand(89,1);
E2=rand(89,1)+3;
F=inline('p(1).*x.^p(2)+p(3)','p','x');
=nlinfit(E1,E2,F,);
P

晓夜寒风 发表于 2009-8-14 22:08:21

Q7 已知向量A=;B= ;如果我想把向量A中与向量B中相同的元素清除掉,例如最后得到C=
应该怎么做
如果各个向量中均无重复元素,提供一个简便的方法
A=;
B= ;
setdiff(A,B)

晓夜寒风 发表于 2009-8-14 22:09:23

Q8 内联函数如何部分赋值传参

tic
a=rand(1,10);
for i=1:length(a)
ff=['x.^2+',num2str(a(i))];
f=inline(ff,'x');
d(i)=quadl(f,-1,1);
end
d
toc

晓夜寒风 发表于 2009-8-14 22:10:13

Q13 我想写一个函数,输入参数是一个字符串比如是"160",函数主要目的是完成数据存储,我现在的问题是存储文件时,文件命名的问题,比如我想把输入的参数作为文件名的一部分,比如希望输出的文件名为"temp160",这个该怎样实现啊,谢谢!!!i = 160;
name = ['temp' , num2str(i), '.txt']; %假设你想把当前工作区的数据存储为temp160.txt;
eval('save(name)');

具体的请看eval save fopen fread fwrite fprintf等函数的帮助

晓夜寒风 发表于 2009-8-14 22:10:50

Q10
如何将NaN以外的8个数加起来,然后求这8个数的平均数。
-----------------------------------------------------------------

>> a=;
>> b=a;
>> b(find(isnan(a)))=[]

b =

1 2 3 5 7 8 9 10


a=;
简洁些可以这样:
mean_a=mean(a(~isnan(a)))
页: [1] 2
查看完整版本: 【转载】matlab 学习点滴

招聘斑竹