Доступ к матрице в Matlab - PullRequest
       11

Доступ к матрице в Matlab

0 голосов
/ 09 февраля 2011

Предположим, пользовательский ввод данных, как показано ниже.Я определяю, что моя матрица - это стоимость.Я создал матрицу 3 на 3.Таким образом, матрица должна выглядеть следующим образом:

cost = [c11 c12 c13            

         c21 c22 c23

         c31 c32 c33]

Поскольку я хочу отобразить набор строк, я делаю это так:

c1 = cost(1,:); % it will become c1 = c11 c12 c13

c2 = cost(2,:); % it will become c2 = c21 c22 c23

c3 = cost(3,:); % it will become c3 = c31 c32 c33

Тогда я хочу значение в матрице.Я делаю это так.

c11 = cost(1,1);

c12 = cost(1,2);

c13 = cost(1,3);

c21 = cost(2,1);

c22 = cost(2,2);

c23 = cost(2,3);

c31 = cost(3,1);

c32 = cost(3,2);

c33 = cost(3,3);

Так что это уравнение, которое я хочу использовать для этого типа матрицы.

lambda = 
((8*c13*c23*c33*Pdt)+(4*c12*c23*c33)+(4*c13*c22*c33)+(4*c13*c23*c32)) ./ (4*c23*c33)+(4*c13*c33)+(4*c13*c23));

Итак, моя проблема в том, что если я захочу сделать матрицу 4 на 3, и она сгенерирует такую ​​матрицу:

cost = [c11 c12 c13            

         c21 c22 c23

         c31 c32 c33

         c41 c42 c43]

Уравнение, которое я хочу использоватьэта матрица (4 на 3) совсем другая.Так как я собираюсь это сделать?Нужно ли использовать, если еще заявление?или делать пока?Может кто-нибудь помочь мне решить это?Кто-нибудь может создать код?

1 Ответ

1 голос
/ 09 февраля 2011

Почему вы явно создаете переменные c11, c12, ...?Конечно, было бы проще получить доступ к матрице в вашем уравнении, например:

лямбда = ((8 * стоимость (1,3) * стоимость (2,3) * стоимость (3,3)) * ФДТ) + (4 * стоимость (1,2) * стоимость (2,3) * стоимость (3,3) + (4 * стоимость (1,3) * стоимость (2,2) * C (3,3)) + (4 * стоимость (1,3) * стоимость (2,3) * стоимость (3,2)) ./ (4 * стоимость (2,3) * стоимость (3,3)) + (4* стоимость (1,3) * стоимость (3,3)) + (4 * стоимость (1,3) * стоимость (2,3)));

На ваш вопрос, да,просто используйте простой оператор if, например:

if size (cost, 1) == 3

  %equation for matrix size 3x3

else

  %equation for matriz size 4x3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...