Arrays 如何在矩阵中获得多个数
嗯。我有一个简单的问题,尽管我对Matlab还是相当陌生(自学)。所以我想要一个Arrays 如何在矩阵中获得多个数,arrays,matlab,matrix,numbers,Arrays,Matlab,Matrix,Numbers,嗯。我有一个简单的问题,尽管我对Matlab还是相当陌生(自学)。所以我想要一个1x6矩阵如下所示: 0 0 1 0 321, 12 <--- needs to be in one box in 1x6 matrices 4,30,17,19 <--- needs to be in one box in 1x6 matrices 考虑使用矩阵而不是矩阵来完成任务 data = cell(6,1); % allocate cell data{1} = eve
1x6
矩阵如下所示:
0
0
1
0
321, 12 <--- needs to be in one box in 1x6 matrices
4,30,17,19 <--- needs to be in one box in 1x6 matrices
考虑使用矩阵而不是矩阵来完成任务
data = cell(6,1); % allocate cell
data{1} = event_marker; % note the curly braces here!
...
data{6} = date; % all elements of date fits into a single cell.
考虑使用矩阵而不是矩阵来完成任务
data = cell(6,1); % allocate cell
data{1} = event_marker; % note the curly braces here!
...
data{6} = date; % all elements of date fits into a single cell.
因此,如果我理解正确,您需要一个包含6个元素的数组,其中1个元素等于
1
,另一个元素是数组[312,12]
,最后一个元素是数组[4,30,17,19]
我将建议两件事来实现这一点:矩阵和单元数组
细胞阵列
在Matlab中,单元
数组是任意类型数据的容器。您可以使用大括号(与矩阵的块大括号相反)来定义它。那么比如说,
C = {'test', rand(4), {@cos,@sin}}
是包含字符串(C{1}
),普通矩阵(C{2}
)和另一个包含函数句柄(C{3}
)的单元格的内容
对于您的情况,您可以执行以下操作:
C = {0,0,1,0, [321,12], [4,30,17,19]};
或者当然
C = {0, event_marker, event_count, block_number, date, time};
矩阵
根据使用位置的不同,法线矩阵也可能足够:
M = [0 0 0 0
event_marker 0 0 0
event_count 0 0 0
block_number 0 0 0
321 12 0 0
4 30 17 19];
注意,您需要一些填充(也就是说,您必须以某种方式在右上角添加这些零)。有很多方法可以做到这一点,但我将“把它作为一种练习”:
同样,这一切都取决于上下文,哪一个更容易 如果我理解正确,您需要一个包含6个元素的数组,其中1个元素等于
1
,另一个元素是数组[312,12]
,最后一个元素是数组[4,30,17,19]
我将建议两件事来实现这一点:矩阵和单元数组
细胞阵列
在Matlab中,单元
数组是任意类型数据的容器。您可以使用大括号(与矩阵的块大括号相反)来定义它。那么比如说,
C = {'test', rand(4), {@cos,@sin}}
是包含字符串(C{1}
),普通矩阵(C{2}
)和另一个包含函数句柄(C{3}
)的单元格的内容
对于您的情况,您可以执行以下操作:
C = {0,0,1,0, [321,12], [4,30,17,19]};
或者当然
C = {0, event_marker, event_count, block_number, date, time};
矩阵
根据使用位置的不同,法线矩阵也可能足够:
M = [0 0 0 0
event_marker 0 0 0
event_count 0 0 0
block_number 0 0 0
321 12 0 0
4 30 17 19];
注意,您需要一些填充(也就是说,您必须以某种方式在右上角添加这些零)。有很多方法可以做到这一点,但我将“把它作为一种练习”:
同样,这一切都取决于上下文,哪一个更容易 如果您的
日期
和时间
变量实际上表示日期(天数、月数、年数)和时间(小时、分钟、秒),则可以将它们压缩为一个或两个数字
研究功能。如果有一个向量,例如,[2013,4,10]
,表示2013年4月10日,则可以将其转换为序列日期:
daten = datenum([2013, 4, 10]);
如果一年中有几天,而不是几个月,这没关系datenum([2013,0300])
也可以使用
时间可以与日期一起打包,也可以单独打包:
timen = datenum([0, 0, 0, 4, 30, 17.19]);
或
一旦你有了这个序列日期,你就可以把它和其他数字放在一个向量中
您可以使用and函数将此数字转换回日期向量或日期字符串。如果您的
日期
和时间
变量实际上表示日期(天数、月数、年数)和时间(小时、分钟、秒),则可以将其压缩为一个或两个数字
研究功能。如果有一个向量,例如,[2013,4,10]
,表示2013年4月10日,则可以将其转换为序列日期:
daten = datenum([2013, 4, 10]);
如果一年中有几天,而不是几个月,这没关系datenum([2013,0300])
也可以使用
时间可以与日期一起打包,也可以单独打包:
timen = datenum([0, 0, 0, 4, 30, 17.19]);
或
一旦你有了这个序列日期,你就可以把它和其他数字放在一个向量中
您可以使用and函数将此数字转换回日期向量或日期字符串。您所说的“在一个框中”是什么意思?当您在工作区中单击变量时,它通常会显示一个矩阵数字。如果变量有多个数字,它会在下一个单元格中创建它。在我的例子中,我喜欢有两个数字的变量,即日期和时间,将这两个数字放在一个单元格中,而不是为每个数字创建自己的单元格查找单元格数组:@Dan,你明白我的问题吗?@Stokes,是的,我很确定。下面的两个答案也说明了同样的问题。你所说的“在一个框中”是什么意思?当你在工作区中点击一个变量时,它通常会显示一个矩阵数字。如果变量有多个数字,它会在下一个单元格中创建它。在我的例子中,我喜欢有两个数字的变量,即日期和时间,将这两个数字放在一个单元格中,而不是为每个数字创建自己的单元格查找单元格数组:@Dan,你明白我的问题吗?@Stokes,是的,我很确定。下面的两个答案也说明了同样的问题。天哪,谢谢@Shai,我一直在寻找def。我不知道如何在这方面给你打分。你能给我看看吗?@Stokes:只要点击某人答案左边大数字上方的“向上”箭头就可以了。这将“向上投票”答案,给回答者10分,并影响问题所有答案的显示顺序。此外,你可以“接受”你认为最好的答案,它会给回答者15分,并把答案放在最上面(不管所有答案的上下投票数是多少)。另外,请通读:)天哪,谢谢@Shai,我一直在寻找def。我不知道如何在这方面给你打分。你能给我看看吗?@Stokes:只要点击某人答案左边大数字上方的“向上”箭头就可以了。这将“向上投票”答案,给回答者10分,并影响问题所有答案的显示顺序。此外,你可以“接受”你认为最好的答案,这会给你15分。