精华内容
下载资源
问答
  • matlab转换csv

    2018-12-20 20:31:24
    右键脚本温江,将当前目录下所有的*.csv文件转换成变量保存到.mat格式。 csv主要是c/c++输出的矩阵格式。
  • 右键matlab脚本,将当前目录下所有的*.csv文件转换成变量保存到.mat格式。 csv主要是c/c++输出的矩阵格式。 代码在我csdn资源文件,链接:https://download.csdn.net/download/xiaoxiao133/10865477 matlab脚本...

    主要功能

    matlab脚本代码如下:

    clear
    clc
    close all;
    % get file names
    file_names = dir('*.csv');
    var_names = [];
    for i = 1 : numel(file_names)
        file_name = file_names(i).name;
        mat_name = file_name(1: find(file_name == '.') - 1);
        file_data = dlmread(file_name);
        eval_mat_str = [mat_name ' = ' 'file_data;'];
        eval(eval_mat_str);
        var_names = [var_names ' ' mat_name];
    end
    eval_str = ['save ' 'last_epoch_data.mat ' var_names];
    eval(eval_str)
    
    展开全文
  • clear clc close all; ...file_names = dir('*.csv'); var_names = []; for i = 1 : numel(file_names) file_name = file_names(i).name; mat_name = file_name(1: find(file_name == '.') - ...
    clear
    clc
    close all;
    % get file names
    file_names = dir('*.csv');
    var_names = [];
    for i = 1 : numel(file_names)
        file_name = file_names(i).name;
        mat_name = file_name(1: find(file_name == '.') - 1);
        file_data = dlmread(file_name);
        eval_mat_str = [mat_name ' = ' 'file_data;'];
        eval(eval_mat_str);
        var_names = [var_names ' ' mat_name];
    end
    eval_str = ['save ' 'last_six_epoch_data.mat ' var_names]
    eval(eval_str)
    
    展开全文
  • matlabcsv文件中读取时间转换异常

    千次阅读 2017-11-04 02:50:23
    matlabcsv 文件中读取时间转换异常最近一段时间一直在研究 matlab 读取各种数据,自以为文件读取的水平还行。可是,昨天,帮朋友读取一个 csv 文件时,时间转换却让我感到非常奇怪。无情打脸,滑稽。本文所需要...

    matlab 从 csv 文件中读取时间转换异常

    最近一段时间一直在研究 matlab 读取各种数据,自以为文件读取的水平还行。可是,昨天,帮朋友读取一个 csv 文件时,时间转换却让我感到非常奇怪。无情打脸,滑稽。

    本文所需要用到的数据可以从我的网盘下载密码:6ivh

    观察文件

    使用 excel 打开文件:

    数据
    如图

    这是 2004 - 2010 点的道指成分股数据。这个数据需要注意日期并不是我们习惯的 ‘yyyy-mm-dd’ 格式,而是 ‘dd-mm-yy’ 格式,要不然你会觉得非常奇怪,数据是怎么个排列法?其实我也是在读了很多次,发现数据不对时才意识到这一点。所以看文件真应该认真看文件名,笑哭。

    数据读取

    1. 最简单的方式是用函数 readtable 直接读取,数据被转换成 table 形式。
    close all
    clear
    clc
    
    filename = 'Dow2004-2010.csv';
    DowJonesTable = readtable(filename);

    打开所读取的数据,认真一看发现数据时间格式有点奇怪:

    奇怪的时间
    奇怪的时间

    其实结果也不怎么奇怪如果,你一开始就是以 ‘dd-mm-yy’ 格式去理解数据,而不是以 ‘yyyy-mm-dd’。请原谅我的愚蠢。

    言归正传,即便如此这样的数据看上去也很不舒服,何况如果我们要画带有 datetime 轴的图,那么简直无法忍受。

    1. 一开始我以为是 readtable 这个函数太高级了,转换出错。笑哭,真的不要乱怀疑 matlab 年轻人,犯错的一般都是你自己。于是我决定用比较低级的方式读取数据。

    如果你这么写代码

    close all
    clear
    clc
    
    filename = 'Dow2004-2010.csv';
    formats = ['%D',repmat('%f',1,30)];
    fid = fopen(filename,'r');
    title = textscan(fid,repmat('%s',1,31),1,'delimiter',',');
    DowJonesTable = textscan(fid,formats,'delimiter',',','collectoutput',1);
    fclose(fid)

    接下来,将看到 DowJonesTable 是一个 1 × 2 的 cell 数组。显然 cell(1) 是时间,打开一看。

    一样的时间

    真是一个悲伤的消息,时间还是不对。这里与前文埋下的伏笔呼应,其实不是 matlab 的错,而是数据本身的问题,滑稽。

    也许此时,你灵机一动,格式控制符 %D 之前不是可以加修饰符控制,时间格式吗?我们在前面,对时间加以控制就行,真是机智。

    close all
    clear
    clc
    
    filename = 'Dow2004-2010.csv';
    formats = ['%{dd-mm-yy}D',repmat('%f',1,30)];
    fid = fopen(filename,'r');
    title = textscan(fid,repmat('%s',1,31),1,'delimiter',',');
    DowJonesTable = textscan(fid,formats,'delimiter',',','collectoutput',1);
    fclose(fid);

    然而事实相当无情,matlab 报错:

    Error using textscan
    Unable to read the DATETIME data with the format 'dd-mm-yy'. If the data is not
    a time, use %q to get text data.
    Error in newtest (line 9)
    DowJonesTable = textscan(fid,formats,'delimiter',',','collectoutput',1); 

    其实,这种情况下 matlab 支持的 format 格式相当有限,基本就是:

    format

    此路不通,年轻人。不过真希望,matlab 以后增加这种格式控制,我就不用浪费,脑细胞了,滑稽。

    通过前面,两种方法的尝试。我们意识到读取数据方面是不能改变现状。或许,你会想干脆以字符方式读入数据,然后在利用 datenum 之类的进行转换,但是 如果你以 字符形式读入,那么数据就真成 ‘yyyy-mm-dd’ 形式。

    人生真是艰难,我们该如何是好?或许就只能篡改数据了,我真的不想这样做,我不是那种人,都是被逼的,滑稽。

    修正时间

    修正时间的方式应该不少,我这里提供一种办法。思路很简单,通过观察发现时间是不对,但是也就是差了 2000 年而已,实在不算什么,滑稽。补上就是。

    close all
    clear
    clc
    
    % load data
    filename = 'Dow2004-2010.csv';
    table = readtable(filename);
    % data cleaning
    % time
    werid_date = table.Date;
    werid_date = cellstr(werid_date);
    n = length(werid_date);
    correct_date = nan(n,1);
    correct_ind = zeros(n,1);
    for i = 1:n
        if ~isnat(table.Date(i))
            temp = datenum(werid_date(i),'dd/mm/yyyy');
            correct_ind(i) = 1;
            correct_date(i) = addtodate(temp,2000,'year');
        end
    end
    correct_ind = logical(correct_ind);
    table = table(correct_ind,:);
    correct_date = correct_date(correct_ind,:);

    相信你一看就懂,我这里提几个值得注意的函数。cellstr 好东西别用错,isnat 判断非时间。主力是 addtodate 加 2000 年就是他干的。
    修正后的时间另人赏心悦目:

    修正

    如果没有办法一眼读懂是什么的话,老老实实用 datestr 将时间转换成字符形式。

    就是这样。

    感谢阅读,好好学习,天天向上

    展开全文
  • MATLABcsv文件转换成mat文件

    千次阅读 2019-01-17 10:36:42
    注意的一点就是:在保存到指定目录下的mat文件时,必须用括号,不用括号,保存不进去 |path = ‘E:\renqunjishu\crowdcount-stackpool\data\...path2 = [path ‘*.csv’]; file_names = dir(path2); for i = 1:leng...

    将指定路径下的csv文件转换到指定路径下的mat文件

    注意的一点就是:在保存到指定目录下的mat文件时,必须用括号,不用括号,保存不进去

    path = 'E:\renqunjishu\crowdcount-stackpool\data\cc\shanghaitech_part_A_patches_9\train_den\';
    path2 = [path '*.csv'];
    file_names = dir(path2);
    for i = 1:length(file_names)
        file_name = file_names(i).name;
        mat_name = file_name(1:find(file_name == '.') - 1);
        file_name = [path file_name];
        file_data = dlmread(file_name);
    %     disp(file_data);    
        mat_name = ['E:\renqunjishu\crowdcount-stackpool\data\mat\' mat_name '.mat'];    
        save(mat_name,'file_data');
        disp(mat_name);  
    end
    
    展开全文
  • matlab编程 csv到mat格式转换程序

    千次阅读 2018-07-12 13:41:27
    imgDataPath = ''; imgDataDir = dir(imgDataPath); % 遍历所有文件 SonDataPath = ''; for i = 1:length(imgDataDir) if(isequal(imgDataDir(i).name,'.')||...%数据转换 save(SonDataPath1,'Datamat'); end end
  • /usr/bin/python#coding:utf-8import scipy.io as sioimport csvimport osimport os.pathimport tracebackimport timeimport numpy as npimport pandas as pdrootdir = "/fitl/TDB_FURTURE/futureab/2015_Month/"c.....
  • 我正在尝试将.mat文件转换csv,保留向量/变量名称.这是我正在处理的一个例子:mymat =model_id: [2217x1 double]own_dummies: [2217x26 double]id: [2217x1 double]product: [2217x1 double]const: [2217x1 double]...
  • Matlab 把矩阵转换csv并用python读取

    千次阅读 2018-12-17 01:15:09
  • file_names = dir('*.csv'); %读取所有的.csv文件 for i = 1: numel(file_names) data = csvread(file_names(i).name); %依次读取csv格式的数据 save([num2str(i),'.mat'],'data'); % save(文件名, 变量),依次...
  • 需要将具有两列数字数据的一系列.mat文件转换为标准数据文件(ascii文本)。请注意,我实际上并没有使用csv,但这里的所有内容都可以通过使用csvwrite而不是标准保存进行修改。使用倍频4.2.1 ....load myfile.matLI = ...
  • 写在前面python对于文件流工作做的比R包,这是我目前的感受,今天给大家贡献一个小函数,这是赵向阳师弟编写的,我们在处理xlsx...实战import pandas as pdimport osimport xlrd#---批量转换excel为csv---def exc...
  • 读取USB传输过来的数据文件,并进行格式转换和绘图显示 ... %由于csv文件中为字符串数字,所以需要进行格式转换 A=strrep(A,'""','","'); A=regexp(A, ',','split'); A=strrep(A,'"',' '); A=strtrim(A);
  • 在RUSBoost中提供了csv转换为arff格式的方法,详见CSVtoARFF.m http://www.mathworks.com/matlabcentral/fileexchange/37315-rusboostfunction r = CSVtoARFF (data, relation, type) % csv to arff file converter...
  • 使用matlab将.idx3-ubyte和.idx1-ubyte格式文件转换成bmp和csv,mnist文件,matlab版本为2014b,转换成的bmp大小为28*28,csv为对应的图片的label,为一个数组。压缩包包含两个m文件,分别运行即可
  • 在RUSBoost和SMOTEBoost中提供了csv转换为arff格式的方法,详见CSVtoARFF.m http://www.mathworks.com/matlabcentral/fileexchange/37315-rusboost ...
  • MATLAB | 读取.csv文件并绘图

    千次阅读 2020-02-25 08:54:36
    对本地的csv文件进行读取,格式转换,并绘图
  • 用python将mat文件中的变量批量转换csv格式最近几天一直在处理怎么将Mat文件中的变量自动读取并转换csv数据格式,困扰了两天,终于找对方法啦最开始以为只有在Matlab中进行load操作将变量加载到工作区中才能看到...
  • 将KEEL的数据集转换CSV文件

    千次阅读 2018-10-29 16:19:28
    使用MATLAB将KEEL的数据集(以glass1数据集为例)转换CSV文件步骤如下: 预处理:首先将从KEEL下载的.dat文件用记事本方式打开,删除里面的非数据部分 点击MATLAB的"导入数据"按钮,选择要转换的.dat...

空空如也

空空如也

1 2 3 4 5
收藏数 86
精华内容 34
关键字:

matlab转换csv

matlab 订阅