Arrays 使用数字和字符串创建矩阵/数组
我正在使用matlab。我有一个函数,目前返回5个数组,但我想把数组合并成一个矩阵,或者只是一个单元格数组,每个数组的标题都是当前函数的输出 例如,给出如下输出:Arrays 使用数字和字符串创建矩阵/数组,arrays,matlab,matrix,Arrays,Matlab,Matrix,我正在使用matlab。我有一个函数,目前返回5个数组,但我想把数组合并成一个矩阵,或者只是一个单元格数组,每个数组的标题都是当前函数的输出 例如,给出如下输出: low_sec lowmid_sec 1 7 2 6 35 5 5 43 有什么想法吗 function [low_sec ,lowmid_sec , middle_sec , upmid_sec , upper_
low_sec lowmid_sec
1 7
2 6
35 5
5 43
有什么想法吗
function [low_sec ,lowmid_sec , middle_sec , upmid_sec , upper_sec]= sepfunc(intensdata)lengthofdata=length(intensdata);
count1=0;
count_2=0;
count_3=0;
count_4=0;
count_5=0;
for i= 1:lengthofdata %loop to seperate count number of data in 5 groups
if (intensdata(i,1)<0.05)
count1=count1+1;
elseif (intensdata(i,1)>=0.05 && intensdata(i,1)<0.1)
count_2=count_2+1;
elseif (0.1<=intensdata(i,1) && intensdata(i,1)<0.15)
count_3=count_3+1;
elseif (0.15<=intensdata(i,1) && intensdata(i,1)<0.2)
count_4=count_4+1;
elseif (intensdata(i,1)>=0.2 )
count_5=count_5+1;
end
end
disp(count1);
disp(count_2);
disp(count_3);
disp(count_4);
disp(count_5);
j=1;
k=1;
m=1;
n=1;
x=1;
low_sec=[count1];
lowmid_sec=[count_2];
middle_sec=[count_3];
upmid_sec=[count_4];
upper_sec=[count_5];
for i= 1:lengthofdata %to seperate original data into 5 different sub-groups.
if (intensdata(i,1)<0.05)
low_sec(j,1)=intensdata(i,1);
j=j+1 ;
elseif(0.05<=intensdata(i,1) && intensdata(i,1)<0.1)
lowmid_sec(k,1)=intensdata(i,1);
k=k+1;
elseif(0.1<=intensdata(i,1) && intensdata(i,1)<0.15)
middle_sec(m,1)=intensdata(i,1);
m=m+1;
elseif(0.15<=intensdata(i,1) && intensdata(i,1)<0.2)
upmid_sec(n,1)=intensdata(i,1);
n=n+1;
elseif( intensdata(i,1)>=0.2)
upper_sec(x,1)=intensdata(i,1);
x=x+1;
end
end
函数[低秒、低秒、中秒、上秒、上秒]=sepfunc(intensdata)lengthofdata=length(intensdata);
count1=0;
计数_2=0;
计数3=0;
计数4=0;
计数_5=0;
对于i=1:lengthofdata%循环,以将计数数据分为5组
如果(intensdata(i,1)=0.05&&intensdata(i,1)您有几个选项,使用您提到的单元格数组,使用新的表结构,或者最简单的方法就是创建一个结构
为此,您只需在函数末尾添加以下内容:
sec.low = low_sec;
sec.lowmid = lowmid_sec;
sec.middle = middle_sec;
sec.upmid = upmid_sec;
sec.upper = upper_sec;
然后将第一行更改为:
function sec = sepfunc(intensdata)
您有几个选项,使用您提到的单元格数组,使用新的表结构,或者最简单的方法就是创建一个结构
为此,您只需在函数末尾添加以下内容:
sec.low = low_sec;
sec.lowmid = lowmid_sec;
sec.middle = middle_sec;
sec.upmid = upmid_sec;
sec.upper = upper_sec;
然后将第一行更改为:
function sec = sepfunc(intensdata)
为什么不输出一个struct
?我两周前才开始使用matlab,所以我不知道它是干什么用的。这对一般编程来说真的很陌生。@Dan我不知道如何使用它,没有其他方法吗?我想最简单的方法是将所有数组连接成一个矩阵。看看cat
:为什么不输出struct
?我两周前才开始使用matlab,所以我真的不知道它是干什么用的。对一般编程来说真的很陌生。@但我不确定如何使用它,没有其他方法吗?我认为最简单的方法是将所有数组连接到一个矩阵中。看看cat
:单元格数组方法-sec={low_-sec,low-mid_-sec,middle_-sec,upmid_-sec,upper_-sec};
Cell数组方法-sec={low_-sec,low-mid_-sec,middle_-sec,upmid_-sec,upper_-sec;