MATLAB';cat()';返回不同矩阵大小的函数

MATLAB';cat()';返回不同矩阵大小的函数,matlab,concatenation,concat,cat,Matlab,Concatenation,Concat,Cat,如果我执行s.device\u macs,那么我会返回一个,因此我希望这是连接的输出,但我在使用时有两件事我不确定:a=cat(2,s.device\u macs) 为了连接之前我使用了cat(1,x),但这不起作用,但是数字2让它运行,第二件事是它返回a,显然比我不尝试使用cat()时大得多 非常感谢,来自MATLAB新手 s.device\u macs是一个1行(第一维)x 3503列(第二维)向量。这就是为什么您必须在cat(2,s.device\u macs)中指定2,以便它沿着第二个维

如果我执行
s.device\u macs
,那么我会返回一个
,因此我希望这是连接的输出,但我在使用时有两件事我不确定:
a=cat(2,s.device\u macs)

为了连接之前我使用了
cat(1,x)
,但这不起作用,但是数字
2
让它运行,第二件事是它返回a,显然比我不尝试使用
cat()时大得多


非常感谢,来自MATLAB新手

s.device\u macs
是一个1行(第一维)x 3503列(第二维)向量。这就是为什么您必须在
cat(2,s.device\u macs)
中指定2,以便它沿着第二个维度(列)连接。我猜1x603326结果是一个包含603326个字符(在列中)的字符串,但不完全确定。。。希望其他人能帮上忙。

我用作弊的方法解决了这个问题。正如我提到的,
ans
是正确的,因此我决定只使用这个:

s.device_macs; % This gives the answer of <1x3503 cell>
macId = ans; % I now make macId copy answer
clear ans; % Now I wipe ans leaving me with just macId
s.device\u macs;%这就给出了答案
macId=ans;%我现在把答案抄下来
清除ans;%现在我只剩下macId了

我知道,与只懂语言相比,这不是一种有效的编码方法,但找到管道胶带式的修复方法很有趣:p.

Try
macId={s.device\u macs}?这些是做什么的?或者我如何找到一些关于这个的帮助文本,以便我知道它为什么给我答案?我的数据中有106个不同的人,我想我明白了,使用
{}
大括号创建一个矩阵,每个人都有单独的条目,因为我可以做
s(x).device_macs
其中x为1:106,在本例中为
macId={s.device_macs}将其作为一个字符串返回。这听起来有一半正确吗?干杯
{}
不创建矩阵,而是创建一个单元格数组<代码>[]
创建一个矩阵。主要区别在于矩阵必须是正方形且类型一致,而单元数组可以是锯齿状且包含不同类型。