MATLAB - 在一行中转置和提取矩阵

Rah*_*ahn 1 matlab

old_mat = [1,2,3; 4,5,6];

new_mat = old_mat'(2:end, :);
new_mat = (old_mat')(2:end, :);
Run Code Online (Sandbox Code Playgroud)

我想转置并提取一个矩阵但我没有尝试这些尝试.

是否可以排成一行?

Wol*_*fie 6

括号( )通常应该[1]是Matlab表达式中的最后一个.这就是为什么表达式a(1)(1)会给出错误:

错误:() - 索引必须出现在索引表达式的最后.

你的例子给出了错误

错误:不平衡或意外的括号或括号.

你应该像rahnema1建议的那样,提取列并进行转置,而不是试图转置和提取行.

new_mat = old_mat(:, 2:end).'
Run Code Online (Sandbox Code Playgroud)

注意,我使用的.'是简写transpose,不是'简写,ctranspose除非特别要求,否则应该避免!


[1]规则总是有例外!以下是您可以立即放置物品的示例).

  • 通过字符串引用表列或结构字段,其中T.('var')(1)T.var(1)等效.
  • 使用点运算符,这也是使用结构的一个特性S(1).var.

通常,如果您尝试在)简单矩阵运算的结束旁边添加代码,则可能存在语法错误.