2.10、matlab中字符、数字、矩阵、字符串和元胞合并为字符串并将字符串以不同格式写入读出excel

1、前言

在 MATLAB 中,可以使用不同的数据类型(字符、数字、矩阵、字符串和元胞)合并为字符串,然后将字符串以不同格式写入 Excel 文件。

以下是一个示例代码,展示如何将不同数据类型合并为字符串,并以不同格式写入 Excel 文件:

% 创建不同类型的数据 
strData = 'Hello, ';
 numData = 2021; matrixData = magic(3); 
strData2 = 'world!'; 
cellData = {strData, numData, matrixData, strData2}; 

% 合并不同类型的数据为一个字符串 
fullString = strcat(strData, num2str(numData), sprintf('\n'), strData2); 

% 创建一个 Excel 文件 
filename = 'output.xlsx'; sheet = 'Sheet1';

 % 写入数据到 Excel 文件 
xlswrite(filename, strData, sheet, 'A1'); 
xlswrite(filename, num2str(numData), sheet, 'A2'); 
xlswrite(filename, matrixData, sheet, 'A3'); xlswrite(filename, strData2, sheet, 'A7'); xlswrite(filename, cellData, sheet, 'A8'); xlswrite(filename, fullString, sheet, 'A12'); 

% 读取 Excel 文件中的数据 data = xlsread(filename, sheet); disp('数据已成功写入并读取。'); disp(data);

请注意,在上面的示例中,我们首先创建了不同类型的数据(字符、数字、矩阵、字符串和元胞),然后将它们合并为一个字符串 fullString。接着,我们使用 xlswrite 函数将这些数据以不同格式写入了 Excel 文件,并最后读取了写入的数据以进行验证。

在实际应用中,您可以根据需要调整数据类型和写入的位置。

2、不同数据类型的赋值

1)数字、字符、矩阵、元胞和字符串的赋值

说明

"="等号进行赋值运算

2)代码:

a=1%数字
b='2'%字符
c=[3,4]%矩阵
d={5}%元胞
e="陕"%字符串

a =
     1
b =
    '2'
c =
     3     4
d =
  1×1 cell 数组
    {[5]}
e = 
    "陕"

3、数字转换为字符

1)数字1转换为字符’1‘

num2str()函数简介

在 MATLAB 中,num2str() 函数用于将数值转换为相应的字符串形式。这个函数的语法如下:

str = num2str(number)

其中,number 是要转换为字符串的数值,可以是标量、向量、矩阵等。

num2str() 函数会将输入的数值转换为相应的字符串形式,并返回一个包含该字符串的字符数组(即字符串变量)。转换的字符串可能包含小数点、指数符号等,具体形式取决于输入的数值和 MATLAB 的默认格式设置。

以下是一个简单的示例,展示如何使用 num2str() 函数将数值转换为字符串:

% 定义一个数值 
number = 123.456; 

% 使用 num2str() 函数将数值转换为字符串 
str = num2str(number); disp(str);

在这个示例中,number 变量包含数值 123.456,num2str() 函数将这个数值转换为字符串并存储在变量 str 中,然后输出这个字符串。

通过 num2str() 函数,您可以方便地将数值转换为字符串,这在处理输出、文件写入等场景中非常有用。

2)代码:

a=1%数字
g=num2str(a)%数字转换为字符

a =
     1
g =
    '1'

4、 矩阵元素转换为字符

1)矩阵中的数字元素转换为字符

说明

num2str()函数实现

2)代码:

c=[3,4]%矩阵
g1=num2str(c(1,1))%矩阵数字转换为字符
g2=num2str(c(1,2))%矩阵数字转换为字符

c =
     3     4
g1 =
    '3'
g2 =
    '4'

 5、元胞转换为字符

1)元胞元素先转换为数字,再将数字转换为字符

cell2mat()函数简介

在 MATLAB 中,cell2mat() 函数用于将元胞数组中的元素连接成一个矩阵或者连接成一个字符数组。这个函数的语法如下:

M = cell2mat(C)

其中,C 是输入的元胞数组,M 是输出的矩阵或字符数组。

  • 如果输入的元胞数组 C 中的每一个元素都是同样大小的数值矩阵,cell2mat() 函数将这些矩阵按列连接成一个更大的矩阵,并返回这个矩阵。
  • 如果输入的元胞数组 C 中的每一个元素都是字符数组,cell2mat() 函数将这些字符数组连接成一个更大的字符数组,并返回这个字符数组。

以下是一个简单示例,展示如何使用 cell2mat() 函数:

% 创建一个包含数值矩阵的元胞数组 
numCell = { [1, 2; 3, 4], [5, 6; 7, 8] }; 
% 使用 cell2mat() 将数值矩阵连接成一个更大的矩阵 
numMat = cell2mat(numCell); disp(numMat); 
% 创建一个包含字符数组的元胞数组 
strCell = { 'hello', 'world' }; 
% 使用 cell2mat() 将字符数组连接成一个更大的字符数组 
strArray = cell2mat(strCell); 
disp(strArray);

在这个示例中,我们首先创建了两个元胞数组,一个包含数值矩阵,一个包含字符数组。然后,我们分别使用 cell2mat() 函数将数值矩阵连接成一个更大的矩阵,将字符数组连接成一个更大的字符数组,并输出结果。

通过 cell2mat() 函数,您可以方便地将元胞数组中的元素连接为矩阵或字符数组,便于进行后续的处理或操作。

2)代码:

d={5}%元胞
g3=cell2mat(d)%元胞变数字
g4=num2str(g3)

d =
  1×1 cell 数组
    {[5]}
g3 =
     5
g4 =
    '5'

6、字符合并

1)strcat()函数合并字符为字符串

strcat()函数简介

在 MATLAB 中,strcat() 函数用于连接字符串数组或字符向量,生成一个新的字符串。这个函数的语法如下:

str = strcat(s1, s2, s3, ...)

其中,s1, s2, s3, ... 是要连接的字符串数组或字符向量。

  • 如果输入参数是字符串数组,则 strcat() 函数将按顺序连接这些字符串,生成一个新的字符串。
  • 如果输入参数是字符向量,则 strcat() 函数将连接这些字符向量,生成一个新的字符串。

以下是一个简单的示例,展示如何使用 strcat() 函数:

% 连接字符串数组 
str1 = 'Hello, '; 
str2 = 'World!'; 
str = strcat(str1, str2); 
disp(str); % 连接字符向量 
s1 = 'Mat'; s2 = 'lab'; 
str_result = strcat(s1, s2); 
disp(str_result);

在这个示例中,我们首先通过连接两个字符串数组来生成一个新的字符串,然后通过连接两个字符向量来生成另一个新的字符串,最后输出结果。

通过 strcat() 函数,您可以轻松地连接字符串数组或字符向量,形成新的字符串,方便在处理文本数据时进行字符串的操作和处理。

2)代码:

a=1;%数字
b='2';%字符
c=[3,4];%矩阵
d={5};%元胞
e="陕";%字符串
% a=1%数字
g=num2str(a);%数字转换为字符
% c=[3,4]%矩阵
g1=num2str(c(1,1));%矩阵数字转换为字符
g2=num2str(c(1,2));%矩阵数字转换为字符
% d={5}%元胞
g3=cell2mat(d);%元胞变数字
g4=num2str(g3);
h=strcat(e,g,b,g1,g2,g4)

h = 
    "陕12345"

2)sprintf()函数合并字符

sprintf()函数简介

在 MATLAB 中,sprintf() 函数用于按指定格式将数据转换为字符串。这个函数的语法如下:

str = sprintf(format, A)

其中,format 是指定输出格式的格式化控制字符串,A 是要格式化的数据。

  • format 中可以包含格式化指令,例如 %d 表示整数,%f 表示浮点数,%s 表示字符串等。通过在 format 中使用这些格式化指令,可以指定如何将数据转换为字符串。
  • A 可以是单个值、向量、矩阵等 MATLAB 数据结构,sprintf() 函数将根据指定的格式化控制字符串将这些数据转换为字符串。

以下是一个示例,展示如何使用 sprintf() 函数:

% 使用 sprintf() 将整数和浮点数转换为字符串 
num = 42; 
str_num = sprintf('The number is %d', num); 
disp(str_num); 
pi_value = pi; 
str_pi = sprintf('The value of pi is %.2f', pi_value); disp(str_pi);

在这个示例中,我们使用了 sprintf() 函数将整数和浮点数转换为字符串,并在字符串中插入一些描述性文本。输出结果会根据指定的格式化控制字符串进行格式化。

通过 sprintf() 函数,您可以方便地将数据转换为特定格式的字符串,便于输出、存储或其他操作。

2)代码:

a=1;%数字
b='2';%字符
c=[3,4];%矩阵
d={5};%元胞
e="陕";%字符串
% a=1%数字
g=num2str(a);%数字转换为字符
% c=[3,4]%矩阵
g1=num2str(c(1,1));%矩阵数字转换为字符
g2=num2str(c(1,2));%矩阵数字转换为字符
% d={5}%元胞
g3=cell2mat(d);%元胞变数字
g4=num2str(g3);
% h=strcat(e,g,b,g1,g2,g4)
i=sprintf('%c%c%c%d%d%d',e,g,b,c(1,1),c(1,2),g3)% d表示整型 c表示字符

i =
    '陕12345'

 7、字符串赋值和日期获取

datestr()函数简介

在 MATLAB 中,datestr() 函数用于将日期和时间数据转换为字符串表示形式。这个函数的语法如下:

str = datestr(date)

其中,date 是包含日期和时间信息的 MATLAB 日期向量或日期字符串。

  • 如果输入参数 date 是 MATLAB 日期向量,datestr() 函数将根据默认格式将日期和时间信息转换为字符串。
  • 如果输入参数 date 是日期字符串,datestr() 函数将尝试解析该字符串,并返回相应的日期格式字符串。

除了日期向量和日期字符串之外,datestr() 函数还可以接受其他可接受的日期和时间值,例如 MATLAB 序列号或日期和时间部分。您可以根据需要指定附加的格式选项来定制输出的日期时间格式。

以下是一个示例,展示如何使用 datestr() 函数:

% 将当前日期转换为字符串 
current_date = datestr(now); 
disp(current_date);
 % 将指定日期向量转换为字符串,并指定输出格式 
specific_date = [2022, 9, 20, 14, 30, 0]; 
formatted_date = datestr(specific_date, 'yyyy-mm-dd HH:MM:SS'); 
disp(formatted_date);

在这个示例中,我们使用了 datestr() 函数将当前日期和指定日期向量转换为字符串,并分别展示了两种不同的输出格式。

通过 datestr() 函数,您可以方便地将日期和时间数据转换为字符串,以便于输出、显示或其他操作。

实现代码:

str1='陕H123456'%字符串类型

str1 =
    '陕H123456'
tr2=datestr(now)%字符串类型

str2 =
    '28-May-2024 12:23:03'

8、字符串以字符形式写入EXCEL

xlswrite()函数简介

在 MATLAB 中,xlswrite() 函数用于将数据写入 Excel 文件。这个函数的语法如下:

xlswrite(filename, A)

其中,filename 是要写入的 Excel 文件的文件名,A 是要写入 Excel 文件的数据。

除了上述基本语法之外,xlswrite() 函数还提供了其他格式的调用方式,允许用户指定写入的数据范围、工作表名称以及是否追加数据等选项。

下面是一个示例,展示如何使用 xlswrite() 函数将数据写入 Excel 文件:

% 创建一个要写入 Excel 文件的数据
 data = [1, 2, 3; 4, 5, 6; 7, 8, 9]; 
% 指定要写入的 Excel 文件名 
filename = 'example.xlsx'; 
% 使用 xlswrite() 函数将数据写入 Excel 文件 
xlswrite(filename, data);

在这个示例中,我们创建了一个简单的数据矩阵 data,并将其写入了一个名为 example.xlsx 的 Excel 文件中。

xlswrite() 函数可以帮助您将 MATLAB 中的数据快速写入 Excel 文件,方便数据处理和共享。然而,需要注意的是,xlswrite() 函数在一些新版 MATLAB 中被替代了,推荐使用 writematrix() 或 writecell() 函数来替代对 Excel 文件的写入操作。

代码:

xlswrite('C:\Users\16023\Desktop\例程\data.xlsx',str1,'Sheet1','A1');%以字符写入数据
xlswrite('C:\Users\16023\Desktop\例程\data.xlsx',str2,'Sheet1','A2');%以字符写入数据

效果:
 

9、 字符串以元胞形式写入EXCEL

代码:

xlswrite('C:\Users\16023\Desktop\例程\data.xlsx',{str1},'Sheet1','A1');%以元胞写入数据
xlswrite('C:\Users\16023\Desktop\例程\data.xlsx',{str2},'Sheet1','B1');%以元胞写入数据

 效果:

10、将EXCEL中数据以数字形式导入matlab 

xlsread()函数简介

xlsread() 函数是 MATLAB 中用于从 Excel 文件读取数据的函数。这个函数的基本语法如下:

[num,txt,raw] = xlsread(filename)

其中,filename 是要读取数据的 Excel 文件名。num 返回数值数据,txt 返回文本数据,raw 返回原始数据(包含数值和文本)。

您也可以使用其他选项来调用 xlsread() 函数,以指定读取的数据范围、工作表名称等。

下面是一个示例,展示如何使用 xlsread() 函数从 Excel 文件中读取数据:

% 指定要读取数据的 Excel 文件名 
filename = 'example.xlsx'; 
% 使用 xlsread() 函数读取 Excel 文件中的数据 
[data,txt,raw] = xlsread(filename); % 显示读取的数据 
disp(data);
% 显示数值数据 
disp(txt); % 显示文本数据 
disp(raw); % 显示原始数据

在这个示例中,我们使用了 xlsread() 函数从名为 example.xlsx 的 Excel 文件中读取了数据,然后分别展示了数值数据、文本数据和原始数据。

通过 xlsread() 函数,您可以方便地从 Excel 文件中读取数据,并在 MATLAB 中进行进一步处理和分析。需要注意的是,xlsread() 函数也有一些局限性,例如无法读取包含公式的单元格等情况。在某些情况下,您可能需要考虑使用更灵活的工具,如 readtable() 函数来读取 Excel 文件中的数据。

代码:

STR1=xlsread('C:\Users\16023\Desktop\例程\data.xlsx')%数字形式导入

STR1 =
   NaN   NaN     1     2     3     4     5     6   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN
     2     8   NaN   NaN   NaN   NaN   NaN     2     0     2     4   NaN     1     2   NaN     3     8   NaN     1     2


11、将EXCEL中数据以元胞形式导入matlab 

代码:

STR2=readcell('C:\Users\16023\Desktop\例程\data.xlsx')%元胞形式导入

STR2 =

  2×20 cell 数组

  列 1 至 10

    {'陕'}    {'H'}    {[1]}    {[2]}    {[3]}    {[4]}    {[5]}    {[6]}    {1×1 missing}    {1×1 missing}
    {[ 2]}    {[8]}    {'-'}    {'M'}    {'a'}    {'y'}    {'-'}    {[2]}    {[        0]}    {[        2]}

  列 11 至 17

    {1×1 missing}    {1×1 missing}    {1×1 missing}    {1×1 missing}    {1×1 missing}    {1×1 missing}    {1×1 missing}
    {[        4]}    {0×0 char   }    {[        1]}    {[        2]}    {':'        }    {[        3]}    {[        8]}

  列 18 至 20

    {1×1 missing}    {1×1 missing}    {1×1 missing}
    {':'        }    {[        1]}    {[        2]}

12、将EXCEL中数据以结构体形式导入matlab 

importdata()函数简介

importdata() 函数是 MATLAB 中的一个通用函数,用于从文件中导入数据。这个函数可以读取文本文件、CSV 文件、Excel 文件等不同格式的数据,并将其存储在一个结构数组中。

下面是 importdata() 函数的基本语法:

data = importdata(filename)

其中,filename 是要导入数据的文件名,data 是包含了文件数据的结构数组。结构数组的具体内容取决于导入的文件类型,可以是数值数据、文本数据、甚至是混合数据。

下面是一个示例,展示如何使用 importdata() 函数从文本文件中读取数据:

% 指定要导入数据的文本文件名 
filename = 'example.txt'; 
% 使用importdata()函数导入文本文件中的数据 
data = importdata(filename); % 显示导入的数据
 disp(data);

在这个例子中,我们使用 importdata() 函数从名为 example.txt 的文本文件中读取了数据,并将其存储在结构数组 data 中。

请注意,importdata() 函数对于简单的数据导入是非常便利的,但对于复杂的数据格式或需要更多控制的情况,可能需要使用更专门的函数,如 readtable()xlsread() 等。

代码:

STR3=importdata('C:\Users\16023\Desktop\例程\data.xlsx')%结构体形式导入

STR3 = 

  包含以下字段的 struct:

        data: [2×20 double]
    textdata: {2×18 cell}


 

  • 21
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
1. 将模型保存为.pb文件 在tensorflow2.10,可以使用以下代码将模型保存为.pb文件: ```python import tensorflow as tf # 构建模型 model = tf.keras.Sequential([ tf.keras.layers.Input(shape=(28, 28, 1)), tf.keras.layers.Conv2D(32, 3, activation='relu'), tf.keras.layers.Flatten(), tf.keras.layers.Dense(10, activation='softmax') ]) # 训练模型 # 保存模型为.pb文件 tf.saved_model.save(model, '/path/to/model.pb') ``` 2. 编写混淆矩阵的python程序 混淆矩阵是评估分类模型性能的一种常用方法。下面是一个基于tensorflow2.10编写的计算混淆矩阵的Python程序: ```python import tensorflow as tf import numpy as np from sklearn.metrics import confusion_matrix # 加载测试数据集 (x_test, y_test), _ = tf.keras.datasets.mnist.load_data() x_test = x_test.astype('float32') / 255. x_test = np.expand_dims(x_test, axis=-1) y_test = tf.keras.utils.to_categorical(y_test, 10) # 加载模型 model = tf.saved_model.load('/path/to/model.pb') # 进行预测 y_pred = model(x_test) # 将预测结果转换为标签 y_pred = np.argmax(y_pred, axis=-1) y_test = np.argmax(y_test, axis=-1) # 计算混淆矩阵 cm = confusion_matrix(y_test, y_pred) print(cm) ``` 在上面的程序,首先加载测试数据集,然后加载保存在.pb文件的模型。接着,使用测试数据集进行预测,并将预测结果转换为标签。最后,使用sklearn.metrics的confusion_matrix函数计算混淆矩阵,并输出结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逼子格

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值