如何用MAtlab把多行资料转化为一列
如何用MAtlab把多行资料转化为一列
若是行向量就转置
a=[1 2 3 4];a'
矩阵,麻烦一点就比如
a=[1 2; 3 4];
b=[a(1,:) a(2,:)]'
excel表格的一行资料我能转化为一列吗
选中——复制——编辑——选择性贴上——转置
matlab中,如何把cell型资料转化为double型资料
cell是胞元资料,它里面可以储存的资料型别很多,如果你在一个胞元里面储存的是double型别的资料,你要提取出来,直接用赋值语句即可。
如何把多个JPEG转化为一个PDF
PS中储存为-下拉单找到-确定
如何用matlab将大量mat转化为jpg
你这个问题是个具体程式设计的问题,涉及具体的资料转换,请把资料档案发过来看看,才能写程式。
如何用photoshop把多页pdf格式 转化为jpg格式
建议安装Adobe Acrobat XI Pro软体,用Adobe Acrobat XI Pro开启PDF文件,另存为JPG格式即可。
matlab如何将资料转化为dataset格式
在资料处理当中,我们经常碰到资料集合并的需要。在一些语言如SAS,SQL中,资料集合并是一个非常简单的问题,但是在Matlab中,资料集合并则显得稍微复杂了一点。
在Matlab中,要想合并资料,有两个办法,第一个办法就是使用dataset这种资料型别,这个statistic toolbox中的资料型别,专门为统计分析开发的。mat,cell,等资料型别转换成dataset资料型别可以检视 mat2dataset,cell2dataset函式。当然,也可以直接定义dataset资料集。有了dataset资料型别,那么就可以使用join函式进行资料合并。还有另外一种办法就是对于金融序列资料,可以使用Financial toolbox中的merge函式,前提是资料型别为金融时间序列物件。本文主要讨论join函式如何合并资料。
[C,IA,IB]= join(A,B,param1,val1,param2,val2,...)
引数一 Keys &&LeftKeys,RightKeys
在join这个函式中,首先要输入的引数是Keys 。这个一般为一个变数名,作为资料合并的标准。当Keys为变数名时,A,B中必须要都有这个变数。否则应该使用LeftKeys和RightKeys这两个引数,LeftKeys指定A中某个变数作为合并依据,RightKeys指定B中某个变数作为合并依据 。请看下面的例子。a、b是一个dataset型别资料,a包含了变数Key1,Var1;b包含了变数Key2,Var2;
a = dataset({'a' 'b' 'c' 'e' 'h'}',[1 2 3 11 17]','VarNames',{'Key1' 'Var1'})
b = dataset({'a' 'b' 'd' 'e'}',[4 5 6 7]','VarNames',{'Key1' 'Var2'})
a =
Key1 Var1
'a' 1
'b' 2
'c' 3
'e' 11
'h' 17
b =
Key1 Var2
'a' 4
'b' 5
'd' 6
'e' 7
现在我们想合并两个资料集,以Key1作为合并依据,那么
c= join(a,b,'key','Key1','Type','inner','MergeKeys',true)
c =
Key1 Var1 Var2
'a' 1 4
'b' 2 5
'e' 11 7
但是当a,b中的变数不同时,例如b中的Key1不叫Key1,而是叫Key2,那么怎么合并呢,应该使用使用LeftKeys和RightKeys代替Keys.举个例子:
a = dataset({'a' 'b' 'c' 'e' 'h'}',[1 2 3 11 17]','VarNames',{'Key1' 'Var1'})
b = dataset({'a' 'b' 'd' 'e'}',[4 5 6 7]', 'VarNames',{'Key2' 'Var2'})
%注意Key1变成了Key2
c= join(a,b,'LeftKeys','Key1','RightKeys','Key2','Type','inner','MergeKeys',true)
结果是
c =
Key1_Key2 Var1 Var2
'a' 1 4
'b' 2 5
'e' 11 7
引数二 Type
Type引数描述的是我们合并的方式,是返回两个资料 *** 有的部分,还是返回两个资料集中所有的观测值,或者返回某个资料集中的所有观测值。Type共有四个引数值,inner,outer,leftouter,rightouter.
首先我们看一下Type引数值为 inner时候的结果
cinner = join(a,b,'key','Key1','Type','inner','MergeKeys',true)
cinner =
Key1 Var1 Var2
'a' 1 4
'b' 2 5
'e' 11 7
结果返回a,b中Key1都有的‘a’,’b’,’c’的观测值。所以inner表示返回两个资料集的共有部分。
再看一下Type为outer时候的结果
couter =
Key1 Var1 Var2
'a' 1 4
'b' 2 5
'c' 3 NaN
'd' NaN 6
'e' 11 7
'h' 17 NaN
很显然,a中Key1变数没有 d这个值,b中Key1没有c,h这个值,但是结果中还是包含了这些观测值。所以outer表示返回资料集的所有观测值。
leftouter,与outer的区别在于leftouter表示,当A中有一个关键变数值而A中却没有的时候,依然返回该观测值。例如
cleftouter = join(a,b,'key','Key1','Type','leftouter', 'MergeKeys',true)
cleftouter =
Key1 Var1 Var2
'a' 1 4
'b' 2 5
'c' 3 NaN
'e' 11 7
'h' 17 NaN
所以leftouter返回A中所有的观测值。
rightouter这个引数值则和leftouter这个相反。
crightouter = join(a,b,'key','Key1','Type','rightouter', 'MergeKeys',true)
crightouter =
Key1 Var1 Var2
'a' 1 4
'b' 2 5
'd' NaN 6
'e' 11 7
引数三 MergeKeys
最后我们看一下 MergeKeys这个引数,故名思议,这个引数表示是否合并关键变数。当MergeKeys为true时,结果只返回一个关键变数。当MergeKeys为false时,结果返回两个关键变数,一个来自与A,一个来自与B. 让我们看一下这个例子
couter = join(a,b,'key','Key1','Type','inner', 'MergeKeys',false)
couter =
Key1_left Var1 Key1_right Var2
'a' 1 'a' 4
'b' 2 'b' 5
'e' 11 'e' 7
couter = join(a,b,'key','Key1','Type','inner', 'MergeKeys',true)
couter =
Key1 Var1 Var2
'a' 1 4
'b' 2 5
'e' 11 7
输出项 [C IA IB]
C为返回的资料集,IA,IB分别为索引,A(IA,varName)对应着C中含有A资料集的元素。例如
[c,IA,IB]=join(a,b,'LeftKeys','Key1','RightKeys','Key2','Type','inner','MergeKeys',true)
c =
Key1_Key2 Var1 Var2
'a' 1 4
'b' 2 5
'e' 11 7
IA =
1
2
4
IB =
1
2
4
>> a(IA,:)
ans =
Key1 Var1
'a' 1
'b' 2
'e' 11
struct、cell array、dataset都属于带有OO思想的几个资料型别,在处理统计的资料整理的时候,dataset可以较为方便的与panel类的资料处理自然融合,如果说速度的话,可能是struct稍微快些,但这三者中最基本的却是cell array,它的处理最类似矩阵,但是在统计资料的处理中有时候引用还是不太方便或容易搞混掉,特别是在资料比较多,且是不是修改的情况下,用名字引用更好些。
在资料转换方面,三者之间可以完全自然的转换,包括含有自定义物件的情况下,都没有什么问题。
但在目前的实际使用中,觉得如果是对多家企业的分析,可能还是struct array作为函式的传递是最方便的,当然,如果要抽取panel资料的话,可以考虑转换为dataset或cell。
Excel里面如何将一行资料转化为列的形式?
选中改行资料,在其他行(最好是下面的行)单元格处点选右键,选择性贴上,复选转置,点选确定。
如何用RStudio把Google-trends里的每星期资料转化为每月资料
做分析没有资料真是一大悲剧,正是无源之水、无根之木再加上无米之炊。通常我们搜寻到的资料格式主要有文字格式、Excel格式和SPSS格式。当然也会有从资料库等其它途径进来,这不在本文讨论范围内。
一般的文字格式汇入,都可以用read.table命令把资料扔进R里面。Excel和Spss资料的话,可用相应软体将档案开启,观察资料结构后将其复制到剪贴簿,然后一样可以用read.table('clipboard')扔到R里面。如果档案太大不好复制,那么可以利用Excel和Spss的汇出功能,将资料汇出成文字格式。
还有一种情况就是,你的计算机上没有安装Excel或是Spss,这资料汇入就要用到RODBC扩充套件包了。首先装载RODBC包。然后输入资料档案的绝对路径(要注意是用/而不是\)来定义连线,最后用资料抓取命令获取你需要的标签页资料内容(Sheet1)。
library(RODBC)
channel=odbcConnectExcel("d:/test.xls")
mydata=sqlFetch(channel,'Sheet1')这样简单的两个步骤就可以将Excel资料汇入R的mydata变数中。如果是Excel2007格式资料则要换一个函式
channel=odbcConnectExcel2007('d:/test.xlsx')
mydata=sqlFetch(channel,'Sheet1')汇入spss的sav格式资料则要用到foreign扩充套件包,载入后直接用read.spss读取sav档案
library(foreign)
mydata=read.spss('d:/test.sav')上面的函式在很多情况下没能将sav档案中的附加资讯导进来,例如资料的label,那么建议用Hmisc扩充套件包的spss.get函式,效果会更好一些。
如何把Excel中的纵行资料转化为横行的呢?
把资料选项起来,点选“编辑--复制”,资料要放在哪里,先定游标,再点选“编辑--选择性贴上”,在里面选择“重置”,这样,纵行的资料就跟横行交换了。
matlab中如何从一个矩阵的一行中提取一个列?
1. 首先是开头的x1=,这里的=号在matlab里面代表赋值。赋值就是把等号右边的值复制给左边的变量。因此x1将会得到等号右边的东西。2. 等号右边是x(:,1)。这个x在之前就已经定义过,否则单独一句的代码无法执行。按照这里的语境,x是一个二维数组,即矩阵。为方便讲解x我自定义了一个4行4列的矩阵,...
matlab中如何读取多个txt文件中的某一行的数据
这样:实现思路:1. 逐一以文本形式打开文件 file(n).txt ;2. 逐行读出数据,并判断前9个字符是否 Timestamp ;3. 如是,在下一行接收数据存入结果并退出此文件;4. 如不是,继续往下读数据。pt = 'd:\\data\\'; % 数据路径 ff = 'file'; % 数据文件前缀 ext = '.txt'; % ...
怎么用matlab把一个矩阵的所有元素都变为1??
首先定义一个全为1的矩阵A ,用M=zeros(N1:N2); %此处生成2行3列就令N1=2,N2=3 这样有M=zeros(2:3);M(:)=1 然后把矩阵A赋值给你要操作的矩阵 参考资料:http:\/\/zhidao.baidu.com\/question\/5976607.html?si=4
怎样用matlab计算五阶行列式?
利用加边的方法,少范德蒙行列式哪一行就加哪一行,然后旁边多加出一列。.例如行列式如下: (缺行的类似范德蒙行列式)1 1 1 1 a b c d a^2 b^2 c^2 d^2 a^4 b^4 c^4 d^4我们利用加行的方法来解决这个问题.加完行行列式变成5行5列,如下:1 1 1 1 1 a b c d x a^2 b^2 ...
matlab 直接得到矩阵一列、或者一行
7;3:8;4:9;5:10;6:11]A(1,:)A(:,1)A = 1 2 3 4 5 6 2 3 4 5 6 7 3 4 5 6 7 8 4 5 6 7 8 9 5 6 7 8 9 10 6 7 8 9 10 11 ans = 1 2 3 4 5 6 ans = 1 2 3 4 5 6 A(i,:) 提取矩阵A的第 i行 A(:,i) 提取矩阵A的第 i列 ...
matlab怎么把矩阵转换成特定的维数?
reshape 函数有以下五种调用形式:1、B = reshape(A,m,n)2、B = reshape(A,m,n,p,...)3、B = reshape(A,[m n p ...])4、B = reshape(A,...,[ ],...)5、B = reshape(A,size)reshape是一种函数,函数可以重新调整矩阵的行数、列数、维数。
matlab中如何取一个矩阵的一部分?
matlab中取一个矩阵的一部分方法如下:格式A(m,n),用于提取矩阵A中符合m,n要求的部分 1、提取某个元素,则m,n为数字标量,如A(2,3)为第二行第三列的元素。2、提取某行某列 A(:,n)提取第n列的所有元素,如A(:,3)提取第三列的所有元素;A(m,:)提取第m行的所有元素,如A(3...
matlab循环读取同一文件夹下的多个excel 并整合数据
分别读入a1,a2,a3;然后令a=[a1;a2;a3]就行。代码:对应的y也应该是由nk个数组成的数组 a=某数组;b=某常数;d=某常数;fork=1:1:nk c=1;n=0;errf=1;whileerrf>1e-8&n<100%计算结果精度要求1e-8,如果迭代超过100次还不收敛,退出循环。y(k)=a(k)*b*c。
matlab 怎么对数据分组?
%以下是判断故障类型,当满足某一故障类型就将该行数据存入相应矩阵中 if index==1 A1(j1,:)=A; %这里要得到9列数据可以将A替换为B(i,:),以下几个判断句中同理 j1=j1+1; end if index==2 A2(j2,:)=A; j2=j2+1; end if index==3 A3(j3,:)=A; j3=j3+1; end if index==4 A4(j4,:...
matlab中如何将多个矩阵保存到同一个矩阵中?
可以参考下面的代码:为了能批量进行,使用了eval函数 首先,为自己产生一个A,B,C,...的矩阵3*3的;for index=1:17 eval([char(64+index) '=rand(3);']);end 从下边开始是存到一个文件当中。delete([pwd '\\data.txt']);for index=1:17 eval(['dlmwrite([pwd ''\\data.txt''],' ...