Advertisement
celestialgod

solve identity matrix

Dec 7th, 2015
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.79 KB | None | 0 0
  1. X = sym('X',[4,3]); % complex
  2. [sizeX, sizeY]=size(X);
  3. numZero = [1, 1, 2, 1];
  4. if any(numZero == sizeY)
  5.   error('no all zero row.')
  6. end
  7. zeroLoc = arrayfun(@(x) randsample(sizeY, x), numZero, 'uni', false);
  8. count = histcounts(cat(1, zeroLoc{:}), 1:(sizeY+1));
  9. if any(count == sizeX)
  10.   error('no all zero col.')
  11. end
  12.  
  13. zeroFunc = cell(sizeX, 1);
  14. for i = 1:sizeX
  15.   zeroFunc{i} = X(i, zeroLoc{i}) == 0;
  16. end
  17. zeroFunc = cat(2, zeroFunc{:});
  18. idenMatFunc = X' * X == eye(sizeY);
  19. Z = solve([idenMatFunc, zeroFunc], X);
  20. % Z =
  21. %
  22. %     X1_1: [0x1 sym]
  23. %     X2_1: [0x1 sym]
  24. %     X3_1: [0x1 sym]
  25. %     X4_1: [0x1 sym]
  26. %     X1_2: [0x1 sym]
  27. %     X2_2: [0x1 sym]
  28. %     X3_2: [0x1 sym]
  29. %     X4_2: [0x1 sym]
  30. %     X1_3: [0x1 sym]
  31. %     X2_3: [0x1 sym]
  32. %     X3_3: [0x1 sym]
  33. %     X4_3: [0x1 sym]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement