Matlab基础与应用教程答案(人民邮电出版社)

2026/4/27 0:13:18

ts=[-1,0];

function sys=mdlOutputs(t,x,u) if u>=0 & u<2 sys=u*u;

elseif u>=2 & u<5 sys=4;

elseif u>=5 & u<7 sys=14-2*u; else

sys=0; end

(2)模块的封装与测试参见教材Page 202

第11章 二、实验题

2. (1)建立EXCEL文件,如气温.xls

(2) Spreadsheet Link的安装与启动参见教材P206

(3)在Excel中选中需要的数据,单击Spreadsheet Link工具栏的“putmatrix”按钮,指定导入MATLAB工作空间的变量名。

(4)单击Spreadsheet Link工具栏中的“wizard”按钮,弹出“MATLAB Function Wizard”对话框。在“Select a category”栏内选择matlab\\polyfun 类后,在“Select a function”栏选择spline函数,在“Select a function signature”栏内中选中spline(x,y,xx),弹出“Function Arguments”对话框。在对话框中的Inputs栏X右边的展开按钮,然后选中EXCEL表中的第1列数据(除标题行),按Enter键确认,返回“Function Arguments”对话框。单击对话框Inputs栏右部的下拉条,使变量变为Y,同样的方式设定Y的值,接着设定XX变量的值。然后单击Optional output cell(s) 右边的展开按钮,在Excel表中选中输出数据使用的单元格,返回对话框后单击OK按钮,完成计算。 3.

clear all

fid=fopen('exercise9_1.m','r'); textall=fscanf(fid,'%c',inf); ch=zeros(26,1);

for n=1:size(textall,2) if isletter(textall(n))

if textall(n)>='a' && textall(n)<='z'

textall(n)=char(textall(n)-('a'-'A')); end

m=textall(n)-'A'+1; ch(m)=ch(m)+1; end end

4.

(1)编辑c源程序exercise11_4.c,代码如下:

#include

#include /* For strcmp() */

#include /* For EXIT_FAILURE, EXIT_SUCCESS */ #include #include \ #define BUFSIZE 256 #define k1 39

#define k2 71

int main() { MATFile *pmat;

mxArray *pa1, *pa2, *pa3; double data[k1][k2];

const char *file = \; char str[BUFSIZE]; int status; int n1,n2;

for(n1=0;n1

data[n1][n2]=pow((n1+1.0)*(n2+1),1/3.0);

printf(\, file); pmat = matOpen(file, \); if (pmat == NULL) {

printf(\, file);

printf(\); return(EXIT_FAILURE); }

pa1 = mxCreateDoubleMatrix(k1,k2,mxREAL); if (pa1 == NULL) {

printf(\, __FILE__, __LINE__); printf(\); return(EXIT_FAILURE); }

pa2 = mxCreateDoubleMatrix(k1,k2,mxREAL); if (pa2 == NULL) {

printf(\, __FILE__, __LINE__); printf(\); return(EXIT_FAILURE); }

memcpy((void *)(mxGetPr(pa2)), (void *)data, sizeof(data));

pa3 = mxCreateString(\); if (pa3 == NULL) {

printf(\, __FILE__, __LINE__); printf(\); return(EXIT_FAILURE); }

status = matPutVariable(pmat, \, pa1); if (status != 0) {

printf(\, __FILE__, __LINE__);

return(EXIT_FAILURE); }

status = matPutVariableAsGlobal(pmat, \, pa2); if (status != 0) {

printf(\);

return(EXIT_FAILURE); }

status = matPutVariable(pmat, \, pa3); if (status != 0) {

printf(\, __FILE__, __LINE__);

return(EXIT_FAILURE); }

memcpy((void *)(mxGetPr(pa1)), (void *)data, sizeof(data)); status = matPutVariable(pmat, \, pa1); if (status != 0) {

printf(\, __FILE__, __LINE__);

return(EXIT_FAILURE); }

mxDestroyArray(pa1); mxDestroyArray(pa2); mxDestroyArray(pa3);

if (matClose(pmat) != 0) {

printf(\,file); return(EXIT_FAILURE); }

pmat = matOpen(file, \); if (pmat == NULL) {

printf(\, file); return(EXIT_FAILURE); }

pa1 = matGetVariable(pmat, \); if (pa1 == NULL) {

printf(\); return(EXIT_FAILURE); }

if (mxGetNumberOfDimensions(pa1) != 2) {

printf(\); return(EXIT_FAILURE); }

pa2 = matGetVariable(pmat, \); if (pa2 == NULL) {

printf(\); return(EXIT_FAILURE); }

if (!(mxIsFromGlobalWS(pa2))) {

printf(\); return(EXIT_FAILURE); }

pa3 = matGetVariable(pmat, \); if (pa3 == NULL) {

printf(\); return(EXIT_FAILURE); }

status = mxGetString(pa3, str, sizeof(str)); if(status != 0) {

printf(\); return(EXIT_FAILURE); }

if (strcmp(str, \)) { printf(\); return(EXIT_FAILURE); }

/* clean up before exit */ mxDestroyArray(pa1); mxDestroyArray(pa2); mxDestroyArray(pa3);

if (matClose(pmat) != 0) {

printf(\,file); return(EXIT_FAILURE); }

printf(\); return(EXIT_SUCCESS); }

(2)在MATLAB命令窗口输入以下命令编译(假定本机安装的编译器是Microsoft Visual Studio 2005)

optsfile = [matlabroot '\\bin\\win32\\mexopts\\msvc80engmatopts.bat']; mex('-f',optsfile,'exercise11_4.c') (3)编译完成后,运行exercise11_4.exe 5.

(1)编辑c源程序exercise11_5.c,代码如下:

#include #include #include #include \ #define BUFSIZE 256 int main() {

Engine *ep;

mxArray *X = NULL, *Y = NULL; char buffer[BUFSIZE+1]; double x[100] ,y[100]; int n;

for( n=0;n<100;n++)

{ x[n]=(n+1)/100.0;y[n]=(n+1)/100.0;} if (!(ep = engOpen(\))) {

fprintf(stderr, \); return EXIT_FAILURE; }

X = mxCreateDoubleMatrix(1, 100, mxREAL);

memcpy((void *)mxGetPr(X), (void *)x, sizeof(x)); Y = mxCreateDoubleMatrix(1, 100, mxREAL);

memcpy((void *)mxGetPr(Y), (void *)y, sizeof(y));


Matlab基础与应用教程答案(人民邮电出版社).doc 将本文的Word文档下载到电脑
搜索更多关于: Matlab基础与应用教程答案(人民邮电出版社) 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219