美文网首页
matlab几个有用的技巧

matlab几个有用的技巧

作者: 荪坛91 | 来源:发表于2017-01-08 22:45 被阅读0次

从cell转化到double

经常困惑于在读入文件中既有字符串,又包含数字情况下而不能用‘%f’格式。于是乎,调用‘%s’格式的结果是读入的dataArray为字符串cell。此时如果需要转化dataArray中的数字字符串为double类型,通常可以有以下几种方法:

1. for循环

2. cellfun(@(x), str2num(dataArray))

3. str2num(char(dataArray))

接下来分别以上述三种方法为例进行对比。在此先给出结论,目前来说第3种方法str2num(char(dataArrary))最有效。

下边是一个简单的matlab程序,分别记录三种方法的CPU时间。在读入dataArray为500*4的情况下,耗时分别为

进一步, 增加读入数据量,提升dataArray至5000*4和50000*4的情况下,耗时时间如下

可见,在数据量较小的情况下,第3种方法最有效,可是当数据量比较大的时候,三种方法相当,而且猜测第1,3种方法同理。

附:源程序

clear all,clc

%% creat a data file

data_creat = log(rand(500,4)*100);

fileID = fopen('data_creat.txt','w');

fprintf(fileID,'%6s %6s %6s %6s\n','data1','data1','data1','data1');

fprintf(fileID,'%.6f %.6f %.6f %.6f \n',data_creat);

fclose(fileID);

%% read the data from the ceated file into a cell

fileID = fopen('data_creat.txt');

formatSpec = '%s %s %s %s \n';

dataArray = textscan(fileID, formatSpec, 'HeaderLines',1);

fclose(fileID);

% first method: for loop

tic

dataCol = [dataArray{:,1}, dataArray{:,2}, dataArray{:,3}, dataArray{:,4}];

for i = 1:size(dataCol,1)

data(i,1) = str2num(dataCol{i,1});

data(i,2) = str2num(dataCol{i,2});

data(i,3) = str2num(dataCol{i,3});

data(i,4) = str2num(dataCol{i,4});

end

toc

% second method: cellfun

clearvars data

tic

data(:,1) = cellfun(@(x) str2num(x), dataArray{1,1});

data(:,2) = cellfun(@(x) str2num(x), dataArray{1,2});

data(:,3) = cellfun(@(x) str2num(x), dataArray{1,3});

data(:,4) = cellfun(@(x) str2num(x), dataArray{1,4});

toc

% third method: str2num(char)

clearvars data

tic

data(:,1) = str2num(char(dataArray{:,1}));

data(:,2) = str2num(char(dataArray{:,2}));

data(:,3) = str2num(char(dataArray{:,3}));

data(:,4) = str2num(char(dataArray{:,4}));

toc

相关文章

  • matlab几个有用的技巧

    从cell转化到double 经常困惑于在读入文件中既有字符串,又包含数字情况下而不能用‘%f’格式。于是乎,调用...

  • 几个有用的 JavaScript 技巧

    1.对数字数组进行排序 JavaScript 数组有内置的 sort 方法。默认情况下 sort 方法把数组元素转...

  • 8.截取数组的一部分

    Matlab实用编程小技巧1000例之八 来源:matlab在数组中取前n项数方法

  • 6.(矩阵的各种旋转)

    Matlab实用编程小技巧1000列之六

  • matlab技巧和快捷键

    Matlab常用小技巧及部分快捷键 Matlab常用小技巧一: 1. m文件如果是函数,保存的文件名最好与函数名一...

  • Numpy之数据保存与读取

      在pandas使用的25个技巧中介绍了几个常用的Pandas的使用技巧,不少技巧在机器学习和深度学习方面很有用...

  • 看数学老师是如何一键搞定报告和试卷的

    本文将介绍Matlab的两个实用技巧。一键生成Word版本的报告和PDF版本的数学试卷。其中第一个技巧Matlab...

  • Matlab 技巧

    用分数显示: format rat 范数: norm(v, p) 3.安装Maple后无法使用内置的符号计算系统:...

  • matlab技巧

    1 subplot时,加总标题:使用suptitle命令,但不能设置字体,需要手动设置。 2 plot出来图片后,...

  • 非常有用的几个Python 技巧

    函数连续调用 默认值陷阱 读写csv文件 数制转换 格式化 json list 扁平化 list 合并 出现次数最...

网友评论

      本文标题:matlab几个有用的技巧

      本文链接:https://www.haomeiwen.com/subject/pkjcbttx.html