MATLAB 从文件中读取数据(壹)

首先讲从 Excel 中读取数据。

num = xlsread(filename,xlRange)

从 filename 文件的名称为 xlRange 的区域读取数据,例:

s=xlsread('Engine-Performance-Test.xlsx','Load')
% 从 Engine-Performance-Test.xlsx 文件中的名为 Load 的区域读取数据

Excel 的名称管理器

num = xlsread(filename,-1)

从打开的 Excel 文件中选择好区域再点击确定,将选定区域导入 MATLAB。

20151101课堂练习

RTRT,MATLAB课上做的练习,截止到10:09

练习一:

clear;
%(1)
a11=eye(5);
a12=rand(8);
%(2)
a21=[1;99];
m=1;
for i=1:2:99
    a21(m)=i;m=m+1;
end
%(3)
A=zeros(8);
for i=1:8
    A(i,i)=a21(i);
end
%(4)
[m,n]=size(A);
B=rand(m,n);
%(5)
D=B([2 4 5],[1 4]);

练习二:

方法一:
clear;
dimension=input('请输入维数dimension:');
for i=1:dimension
    fprintf('请输入第%i行的数',i);
    a(i)=input(':');
end
matrix=zeros(dimension);
for i=1:dimension
    for j=1:dimension
        matrix(i,j)=a(i).^(j-1);
    end
end
matrix

方法二:
clear;
dimension=input('请输入维数dimension:');
for i=1:dimension
    fprintf('请输入第%i行的数',i);
    a(i)=input(':');
end
matrix=zeros(dimension);
for i=1:dimension
    matrix(:,i)=(a').^(i-1);
end
matrix

练习三:

clear;
%1  a
x=[-50:0.1:50];
ya=x.^2;
subplot(3,1,1);
plot(x,ya);
%2  b
yb1=(x+5).^2;
yb2=x.^2+5;
subplot(3,2,3);
plot(x,yb1);
subplot(3,2,4);
plot(x,yb2);
%3  c
subplot(3,1,3);
hold on;
c=rand(100,10);
plot(c);

几个MATLAB小程序

将华氏温度f转换为摄氏温度c

clear; %清除工作空间中的变量
f=input('Input Fahrenheit temperature:');
c=5*(f-32)/9

函数文件将变量a,b的值互换

function [a,b]=swap(a,b)
try
    a=a+b;b=a-b;a=a-b;  %先试探性执行语句,若a,b均为数而非数组,则执行成功
catch
    c=a;a=b;b=c;
end
end

我觉得上面这样可能会执行得快一点,毕竟不用申请新的变量空间(●'◡'●)

输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出

c=input('请输入一个字符','s');
if c>='A' & c<='Z'
disp(char(abs(c)+abs('a')-abs('A')));
elseif c>='a'& c<='z'
disp(char(abs(c)- abs('a')+abs('A')));
elseif c>='0'& c<='9'
disp(abs(c)-abs('0'));
else
disp(c);
end

下面这个程序没有弄懂

s=0;
a=[12,13,14;15,16,17;18,19,20;21,22,23];
for k=a
s=s+k;
end
disp(s');

得到的结果是

s =

    39
    48
    57
    66

MATLAB作曲线y=x(1-x)在[0,1]上转动切线,从几何上说明水平切线的存在性

课堂上讲过的,刚刚读懂( ╯□╰ )
现在做了注释

axis([0,1,0,1])
hold on
% 作曲线y=x(1-x)
x=0:0.005:1;
y=x.*(1-x);
plot(x,y,'r')
% 作切点
x0=0:0.05:1;
y0=x0.*(1-x0);
n=length(x0);   % 定义循环终值
ybar=1-2*x0;    % 切点斜率
% 作切点
for i=1:n
    for x1=0:0.01:1
        y1=y0(i)+ybar(i)*(x1-x0(i));
        plot(x1,y1,'k')
    end
    pause(0.1)  % 暂停0.1秒,方便观察
end
plot([0,1],[1/4,1/4],'k')   % 作水平线
xlabel('x轴')
ylabel('y轴')
title('水平切线的存在性演示')
text(0.4,0.2,'y=x(1-x)')    % 注释,坐标为文字最左边点的位置
hold off