在向量中省略单个值

时间:2015-03-05 17:54:18

标签: matlab matrix vector

我有以下情况:

PA_2 = inv(T2)*[PA_0;1]

其中PA_0是2x1向量,PA_2是3x3矩阵。 答案是:

[2,14903810567666;-0,722243186433546;1]

问题是我想省略1.所以我想得到一个2x1向量而不是3x1向量。

我需要更改/修改此行:PA_2 = inv(T2)*[PA_0;1]

你们中的任何人都知道我的问题的答案吗?

感谢您的时间,

贾斯汀

2 个答案:

答案 0 :(得分:1)

我不相信你可以在一行中做到这一点(其他人可能就此而言)所以我会做的就是这个

PA_2 = inv(T2)*[PA_0;1];
PA_2 = PA_2(1:2);

表示范围。左边是你的起始索引,右边是你的结束索引。你甚至可以用matricies这个表示法。仅举例来说

a = [1,2,3;4,5,6;7,8,9];
a(2:3,1:2)
%produces 
%ans =
%     4     5
%     7     8

还有一个有用的消息,如果你使用更长的vectosrs / matricies,你可以使用end关键字。它会自动查找最后一个索引。所以你的例子可以做到

PA_2 = inv(T2)*[PA_0;1];
PA_2 = PA_2(1:end-1);     %leaves out the last element

希望有所帮助

答案 1 :(得分:0)

您可能希望查看this问题,该问题有很多有趣的答案。

对于您的应用程序,未记录的函数builtin可以正常工作:

PA_2 = builtin('_paren', inv(T2)*[PA_0;1], 1:size(T2,1)-1)

请注意,您不能使用关键字end,因此您必须使用T2的大小来输入正确数量的元素。