Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 使用数字和字符串创建矩阵/数组_Arrays_Matlab_Matrix - Fatal编程技术网

Arrays 使用数字和字符串创建矩阵/数组

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_

我正在使用matlab。我有一个函数,目前返回5个数组,但我想把数组合并成一个矩阵,或者只是一个单元格数组,每个数组的标题都是当前函数的输出

例如,给出如下输出:

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;