会MATLAB的帮帮忙啊~~~

来源:百度知道 编辑:UC知道 时间:2024/06/08 20:30:34
两道练习题,不太会啊、、、

1、将A=magic(10)的数据以char的数据类型存入一个二进制文件mytest.bin中,再将文件内容读入工作空间的变量a中。
2、编写一个函数求二次方程的跟,要讨论可能出现的几种情况,使程序能够正确处理这些情况并输出正确结果。

本人基本没有什么基础,还盼大家有详细解答,哈哈,谢谢~

第一题:
%clear;
%clc;
A=magic(10);%产生这个矩阵;
fid=fopen('mytest.bin','w');%创建文件;
fprintf(fid,'%c',A);%以整数形式保存数据;
%现在在你的当前工作目录中就可以看到该文件。
%clear;
%clc;
fid=fopen('mytest.bin','r');
Aa=fread(fid,'char');
Aaa=reshape(Aa,[10,10]);%恢复出来的数据,和A一样。
第二题:
function y=rOfSecOrder(x)%x的参数从前到后分别是一元二次方程的系数(从高到低)
if(sum(size(x)==[1 3])~=2&&(size(x)==[3 1])~=2)%不合法的输入;
disp('Illegal input!,the input should be a 1*3 or 3*1 matrix');
return;
end
a=x(1);
b=x(2);
c=x(3);
if(a~=0)%二次方程;
y(1)=(-b+sqrt(b^2-4*a*c))/(2*a);
y(2)=(-b-sqrt(b^2-4*a*c))/(2*a);
return;
else
if(b==0)%很诡异的东西;
if(c==0)
disp('有意思吗?');
return;
else
disp('请问你这是什么方程?0做除数没意义好不好!');
return;
end
else%一次方程;