Matrix manipulation by function

Dear all, For a given matrix (square) i need to eliminate some elements (some rows and columns)
A =
35 6 19
3 7 23
31 2 27
I need only the second (not the first and the third) row and column : the eliminated are stocked in a vector
B = (1 3)
So : some function (A, B) :::> the result C = 7
function (A, B) = C

2 个评论

iwant = A(2,2)
wont it solve the purpose?
Dear KSSV, i need a function for lot of use
A1 =
35 6 19
3 7 23
31 2 27
and
B1 = (1 3)
C1 = 7
or
A2 =
35 6 19 11
3 7 23 44
31 2 27 55
31 2 27 55
and
B2 = (2 3)
C2 =
35 11
31 55

请先登录,再进行评论。

 采纳的回答

ii = num2cell([1;1]*setdiff(1:length(A),B(:)'),2);
out = A(ii{:});

8 个评论

Dear Andrei; please why 2 in ,B(:)'),2); thanks
Please read about num2cell, it's 'dim'.
Dear Andrei; thanks the explication, is it possible to get only the the first and the third (not the second) rows and columns : the wanted are stocked in a B vector
A =
35 6 19
3 7 23
31 2 27
B = (1 3)
C = function (A, B)
C =
35 19
31 27
Dear Andrei; Thank you a lot for your valued assistance.
Hy Lila, Hy Andrei Bobrov, i have a same need but for a vector, for a V_old vector i want to insert the V_ins vector in the order of V_ord vector (the value of 10 replace the 1 element of V_old, the value of 20 replace the 3 element of V_old):
V_old = zeros(1,3);
V_ins = [10 20];
V_ord = [1 3];
I want to write a function
V_new = MyFunction(V_old, V_ins, V_ord)
to get V_new = 10 0 20
Thank
V_new = V_old;
V_new(V_ord) = V_ins;
Dear Andrei; please how to trait a vector (eliminate the elements stocked in a vector by order)
A = [10 52 33]
B = [3]
ii = num2cell([1]*setdiff(1:length(A),B(:)'),1);
out = A(ii{:});
i get out = 52 so i must get out = 10 52

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Operators and Elementary Operations 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by