如何将C语言转换成matlab?

发布网友 发布时间:2022-04-21 23:53

我来回答

1个回答

热心网友 时间:2023-09-28 17:59

法一:main.m脚本和exchange.m函数

法二:将main定义成函数

对于R2016b以前版本,脚本文件中不能定义函数,因此分为main.m脚本文件和exchange.m函数文件(函数文件名必须和函数名相同)两部分;

对于R2016b及以后的版本,脚本可以定义局部函数,这样可以将exchang.m的内容放在main.m中(必须放在main脚本末尾)

如果main.m定义成函数而不是脚本(一般不会这么做),可以不用分成两个文件,直接将exchange作为main的子函数(放在main函数后面),这时,如果要运行,需要在命令行调用main函数

运行结果

文本代码如下:

[1] main.m 脚本:

disp('请输入四个数字')

number = zeros(1, 4, 'int32');

for ii = 1:4

    number(ii) = input('');

end

number = exchange(number);

disp('修改后的数组为:');

for ii = 1:4

    disp(number(ii));

end

[2] exchang.m 函数

function num = exchange(num)


num(num < 10) = 0;


end

代码流程基本和C语言一样,有三个点不同:

[1] main脚本中的number = exchange(number),因为Matlab没有指针实现,需要用返回值覆盖原数组

[2] exchang函数采用了向量化实现,num(num < 10) = 0表示将num数组中所有小于10的元素置零,如果要贴近C语言的形式,可以用下面的代码:

function num = exchange(num)


for ii = 1:4

    if num(ii) < 10

        num(ii) = 0;

    end


end

[3] 下标变量不能用 i 或者 j 表示,可以用 ii,jj,k,m,n等,这是Matlab的遗留缺陷,i 和 j 本身是个全局变量(而且没有类似const这样的保护),表示单位纯虚数,如果用在循环中被修改值,可能造成不确定的错误计算结果

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com