当前位置: 首页 > 工具软件 > imatlab > 使用案例 >

MATLAB的输入与输出函数

庞旺
2023-12-01

由于 MATLAB不使用 stdin 和 stdout,而是使用command window进行交互。因此不需要使用 scanf 和 printf 等 C/C++ 函数来提示用户进行输入。但在某些情况下需要提示用户进行输入并打印相关结果时,可使用如下函数。

输入:input()

MATLAB中使用input()函数获取用户输入。

1. 输入单个数值

a = input('');                          %不含提示的单个数值输入
a = input('Please input a number:');    %含提示的单个数值输入

2. 输入字符串

a = input('', 's');                          %不含提示的字符串输入
a = input('Please input a string:', 's');    %含提示的字符串输入

3. 输入以空格隔开的一行数值

a = input('', 's');   %以字符串读入
a = str2num(a);       %将字符串转化为一维向量,方便后续处理

4. 输入以空格与换行符隔开的多行数值

例如输入以空格和换行符输入三维矩阵:

a = zeros(3,3);
for i =1:3
    A{i} = input('','s');           %使用胞元数组获取字符串
    a(i,:) = str2num(A{i});         %将字符串转化为一维数组
end

在不知道用户即将输入几行几列时,该方法不适用。等日后了解到好的方法再来补充。

输出

1. disp()

disp()函数表示显示变量的值,对于单个数值、字符串、数组、矩阵都按照其格式显示。

(1)输出单个数值

A = 5;
disp(A)

5

(2)输出一维数组

A = [5 10];
disp(A)

5 10

(3)输出矩阵

A=[1 2;3,4];
disp(A)

1 2
3 4

(4)输出字符串

A = 'Hello World ! ';
disp(A)

Hello World !

2. fprintf()

fprintf()函数为格式化输出函数,用法与C语言printf类似。

(1)输出格式化的单个数值

a = 3.1415926;
fprintf('PI is %.5f.\n', a);

pi is 3.14159.

(2)输出格式化的一维数组

对于一维数组,根据格式化字符逐个进行输出。

a = [1 3 5];
fprintf('%d\n',a);

1
3
5

(3)输出格式化的矩阵

对于矩阵,可以使用以下方式输出。

a = [1.02 2.21 3.58;4.12 5.85 6.58;7.96 8.73 9.86];
for i =1:9
   if mod(i,3) == 0
       fprintf('%.2f\n',a(i));
   else 
       fprintf('%.2f ',a(i));end
   end
end

1.02 2.21 3.58
4.12 5.85 6.58
7.96 8.73 9.86

(4)输出格式化的字符串

对于字符串,使用%s格式化字符。

s = 'hello world!';
fprintf('%s\n',s)

hello world!

 类似资料: