How would I transform a 5-dimensional vector into a 3-dimensional vector?

4 ビュー (過去 30 日間)
Connor Mondock
Connor Mondock 2022 年 2 月 4 日
コメント済み: Voss 2022 年 2 月 4 日
How would I transform a 5-dimensional vector into a 3-dimensional vector? An example would be very helpful, but I really do not know how to do this.

回答 (1 件)

Voss
Voss 2022 年 2 月 4 日
How you would do it depends on how you want it to work.
For instance, if your 5-dimensional matrix contains two singleton (i.e., of size 1) dimensions that you want to remove, you could use squeeze():
X = randn(5,1,3,1,2);
Y = squeeze(X);
disp(X);
(:,:,1,1,1) = -0.3821 -0.9261 0.0377 -0.3751 0.6377 (:,:,2,1,1) = -0.8345 -0.1924 -0.7902 0.0368 -0.3870 (:,:,3,1,1) = -0.8840 1.3846 -0.6376 0.6339 0.8134 (:,:,1,1,2) = -0.9523 -0.5598 1.0810 0.7166 1.1387 (:,:,2,1,2) = 0.7773 0.3358 -0.5979 1.3993 -0.5095 (:,:,3,1,2) = -0.4363 -0.3040 -0.1557 -1.0283 1.5534
disp(Y);
(:,:,1) = -0.3821 -0.8345 -0.8840 -0.9261 -0.1924 1.3846 0.0377 -0.7902 -0.6376 -0.3751 0.0368 0.6339 0.6377 -0.3870 0.8134 (:,:,2) = -0.9523 0.7773 -0.4363 -0.5598 0.3358 -0.3040 1.0810 -0.5979 -0.1557 0.7166 1.3993 -1.0283 1.1387 -0.5095 1.5534
Or you could use reshape() in that same situation:
Y = reshape(X,[5 3 2]);
disp(Y);
(:,:,1) = -0.3821 -0.8345 -0.8840 -0.9261 -0.1924 1.3846 0.0377 -0.7902 -0.6376 -0.3751 0.0368 0.6339 0.6377 -0.3870 0.8134 (:,:,2) = -0.9523 0.7773 -0.4363 -0.5598 0.3358 -0.3040 1.0810 -0.5979 -0.1557 0.7166 1.3993 -1.0283 1.1387 -0.5095 1.5534
Or even if there are no singleton dimensions, you could use reshape(), but you have to specify how you want this reshaping done:
X = randn(5,2,3,4,2);
disp(X);
(:,:,1,1,1) = -1.5990 -1.4774 -0.2814 -1.0066 -0.1961 0.4082 -0.0850 -0.7829 -1.0714 -0.5700 (:,:,2,1,1) = 0.1118 -1.9138 2.2011 -0.4253 -2.3668 -0.9079 0.4306 0.7721 -0.5925 0.8626 (:,:,3,1,1) = -0.6635 0.2661 -1.1877 1.9580 0.1238 -0.5403 -1.2074 -0.9911 -0.8459 -0.7236 (:,:,1,2,1) = 1.4873 1.1875 0.0843 0.5482 -1.5242 1.5693 -0.5216 1.2928 -0.8007 -0.4383 (:,:,2,2,1) = 1.2575 1.7517 -0.6058 0.0287 1.9479 0.1202 -0.6029 -0.0174 -0.5533 1.0998 (:,:,3,2,1) = -0.3341 0.0497 0.2022 1.1645 1.1306 -1.0376 -0.6294 0.4023 2.2155 -0.8428 (:,:,1,3,1) = -1.9050 -0.0878 -1.3216 -0.7829 -0.0930 0.3349 1.2693 -0.3298 0.4882 0.4263 (:,:,2,3,1) = -0.4462 1.2260 0.0387 0.2094 -0.0832 1.4408 2.0849 -0.5376 0.3471 -1.1520 (:,:,3,3,1) = 1.2225 0.3516 3.5116 0.6621 0.8052 2.6316 -0.1157 1.3297 0.0241 0.4893 (:,:,1,4,1) = 1.3257 -1.1252 -1.2487 1.5519 0.4120 -0.8644 -0.7296 -1.5258 1.2875 0.1905 (:,:,2,4,1) = 0.3836 0.6030 0.8254 0.2551 -0.3455 1.1446 -0.6773 -1.3863 -1.5075 -0.5765 (:,:,3,4,1) = 0.3761 -0.9105 1.4721 -1.1455 0.4240 -0.1831 0.5730 -2.4002 -0.2211 1.8798 (:,:,1,1,2) = -0.2634 -0.5790 -0.2404 -0.9705 1.4386 0.7587 -0.6913 -0.8247 -0.2514 -0.6161 (:,:,2,1,2) = -0.0273 0.1439 1.6814 0.2454 0.8269 -1.0881 -1.1424 0.7971 -2.1742 0.8649 (:,:,3,1,2) = 0.0594 -2.0908 -0.1723 0.2557 -1.1110 -1.5074 0.1578 0.5286 -0.7027 1.9260 (:,:,1,2,2) = -0.3547 0.1481 -0.9297 -1.0064 -0.1334 1.1872 -0.0308 -0.0943 -0.3632 -1.4703 (:,:,2,2,2) = 0.0866 0.0515 0.1770 -1.0495 -1.0910 1.2994 -0.1530 -0.1821 -0.1600 1.6377 (:,:,3,2,2) = 0.8820 -0.5114 -1.6949 0.1523 0.4375 2.1341 -0.3578 -1.5224 -0.4132 0.3853 (:,:,1,3,2) = 0.5756 0.7845 0.5070 -0.0190 -1.6021 -1.7109 0.8970 -2.1029 0.8054 2.3897 (:,:,2,3,2) = -0.4548 -0.4863 -1.7089 -0.4617 1.2106 0.5118 0.1166 -0.3795 -0.8231 0.1280 (:,:,3,3,2) = -0.3409 -1.1771 -1.0191 0.1713 0.8405 0.3731 -1.0565 -1.0445 -0.0011 -0.9263 (:,:,1,4,2) = -0.0527 -1.1203 -1.0325 0.1015 -0.7649 1.2671 0.4507 -0.2430 0.6585 -0.1224 (:,:,2,4,2) = 0.2141 1.1805 -1.3787 0.3057 1.5172 0.2990 0.4007 -0.3995 -0.6900 1.3717 (:,:,3,4,2) = 1.1456 0.1479 -0.4306 -1.7615 0.8234 0.2880 0.3705 -0.0219 0.2025 -0.8276
Y = reshape(X,[10 12 2]);
disp(Y);
(:,:,1) = -1.5990 0.1118 -0.6635 1.4873 1.2575 -0.3341 -1.9050 -0.4462 1.2225 1.3257 0.3836 0.3761 -0.2814 2.2011 -1.1877 0.0843 -0.6058 0.2022 -1.3216 0.0387 3.5116 -1.2487 0.8254 1.4721 -0.1961 -2.3668 0.1238 -1.5242 1.9479 1.1306 -0.0930 -0.0832 0.8052 0.4120 -0.3455 0.4240 -0.0850 0.4306 -1.2074 -0.5216 -0.6029 -0.6294 1.2693 2.0849 -0.1157 -0.7296 -0.6773 0.5730 -1.0714 -0.5925 -0.8459 -0.8007 -0.5533 2.2155 0.4882 0.3471 0.0241 1.2875 -1.5075 -0.2211 -1.4774 -1.9138 0.2661 1.1875 1.7517 0.0497 -0.0878 1.2260 0.3516 -1.1252 0.6030 -0.9105 -1.0066 -0.4253 1.9580 0.5482 0.0287 1.1645 -0.7829 0.2094 0.6621 1.5519 0.2551 -1.1455 0.4082 -0.9079 -0.5403 1.5693 0.1202 -1.0376 0.3349 1.4408 2.6316 -0.8644 1.1446 -0.1831 -0.7829 0.7721 -0.9911 1.2928 -0.0174 0.4023 -0.3298 -0.5376 1.3297 -1.5258 -1.3863 -2.4002 -0.5700 0.8626 -0.7236 -0.4383 1.0998 -0.8428 0.4263 -1.1520 0.4893 0.1905 -0.5765 1.8798 (:,:,2) = -0.2634 -0.0273 0.0594 -0.3547 0.0866 0.8820 0.5756 -0.4548 -0.3409 -0.0527 0.2141 1.1456 -0.2404 1.6814 -0.1723 -0.9297 0.1770 -1.6949 0.5070 -1.7089 -1.0191 -1.0325 -1.3787 -0.4306 1.4386 0.8269 -1.1110 -0.1334 -1.0910 0.4375 -1.6021 1.2106 0.8405 -0.7649 1.5172 0.8234 -0.6913 -1.1424 0.1578 -0.0308 -0.1530 -0.3578 0.8970 0.1166 -1.0565 0.4507 0.4007 0.3705 -0.2514 -2.1742 -0.7027 -0.3632 -0.1600 -0.4132 0.8054 -0.8231 -0.0011 0.6585 -0.6900 0.2025 -0.5790 0.1439 -2.0908 0.1481 0.0515 -0.5114 0.7845 -0.4863 -1.1771 -1.1203 1.1805 0.1479 -0.9705 0.2454 0.2557 -1.0064 -1.0495 0.1523 -0.0190 -0.4617 0.1713 0.1015 0.3057 -1.7615 0.7587 -1.0881 -1.5074 1.1872 1.2994 2.1341 -1.7109 0.5118 0.3731 1.2671 0.2990 0.2880 -0.8247 0.7971 0.5286 -0.0943 -0.1821 -1.5224 -2.1029 -0.3795 -1.0445 -0.2430 -0.3995 -0.0219 -0.6161 0.8649 1.9260 -1.4703 1.6377 0.3853 2.3897 0.1280 -0.9263 -0.1224 1.3717 -0.8276
Y = reshape(X,[5 6 8]);
disp(Y);
(:,:,1) = -1.5990 -1.4774 0.1118 -1.9138 -0.6635 0.2661 -0.2814 -1.0066 2.2011 -0.4253 -1.1877 1.9580 -0.1961 0.4082 -2.3668 -0.9079 0.1238 -0.5403 -0.0850 -0.7829 0.4306 0.7721 -1.2074 -0.9911 -1.0714 -0.5700 -0.5925 0.8626 -0.8459 -0.7236 (:,:,2) = 1.4873 1.1875 1.2575 1.7517 -0.3341 0.0497 0.0843 0.5482 -0.6058 0.0287 0.2022 1.1645 -1.5242 1.5693 1.9479 0.1202 1.1306 -1.0376 -0.5216 1.2928 -0.6029 -0.0174 -0.6294 0.4023 -0.8007 -0.4383 -0.5533 1.0998 2.2155 -0.8428 (:,:,3) = -1.9050 -0.0878 -0.4462 1.2260 1.2225 0.3516 -1.3216 -0.7829 0.0387 0.2094 3.5116 0.6621 -0.0930 0.3349 -0.0832 1.4408 0.8052 2.6316 1.2693 -0.3298 2.0849 -0.5376 -0.1157 1.3297 0.4882 0.4263 0.3471 -1.1520 0.0241 0.4893 (:,:,4) = 1.3257 -1.1252 0.3836 0.6030 0.3761 -0.9105 -1.2487 1.5519 0.8254 0.2551 1.4721 -1.1455 0.4120 -0.8644 -0.3455 1.1446 0.4240 -0.1831 -0.7296 -1.5258 -0.6773 -1.3863 0.5730 -2.4002 1.2875 0.1905 -1.5075 -0.5765 -0.2211 1.8798 (:,:,5) = -0.2634 -0.5790 -0.0273 0.1439 0.0594 -2.0908 -0.2404 -0.9705 1.6814 0.2454 -0.1723 0.2557 1.4386 0.7587 0.8269 -1.0881 -1.1110 -1.5074 -0.6913 -0.8247 -1.1424 0.7971 0.1578 0.5286 -0.2514 -0.6161 -2.1742 0.8649 -0.7027 1.9260 (:,:,6) = -0.3547 0.1481 0.0866 0.0515 0.8820 -0.5114 -0.9297 -1.0064 0.1770 -1.0495 -1.6949 0.1523 -0.1334 1.1872 -1.0910 1.2994 0.4375 2.1341 -0.0308 -0.0943 -0.1530 -0.1821 -0.3578 -1.5224 -0.3632 -1.4703 -0.1600 1.6377 -0.4132 0.3853 (:,:,7) = 0.5756 0.7845 -0.4548 -0.4863 -0.3409 -1.1771 0.5070 -0.0190 -1.7089 -0.4617 -1.0191 0.1713 -1.6021 -1.7109 1.2106 0.5118 0.8405 0.3731 0.8970 -2.1029 0.1166 -0.3795 -1.0565 -1.0445 0.8054 2.3897 -0.8231 0.1280 -0.0011 -0.9263 (:,:,8) = -0.0527 -1.1203 0.2141 1.1805 1.1456 0.1479 -1.0325 0.1015 -1.3787 0.3057 -0.4306 -1.7615 -0.7649 1.2671 1.5172 0.2990 0.8234 0.2880 0.4507 -0.2430 0.4007 -0.3995 0.3705 -0.0219 0.6585 -0.1224 -0.6900 1.3717 0.2025 -0.8276
Y = reshape(X,[5 2 24]);
disp(Y);
(:,:,1) = -1.5990 -1.4774 -0.2814 -1.0066 -0.1961 0.4082 -0.0850 -0.7829 -1.0714 -0.5700 (:,:,2) = 0.1118 -1.9138 2.2011 -0.4253 -2.3668 -0.9079 0.4306 0.7721 -0.5925 0.8626 (:,:,3) = -0.6635 0.2661 -1.1877 1.9580 0.1238 -0.5403 -1.2074 -0.9911 -0.8459 -0.7236 (:,:,4) = 1.4873 1.1875 0.0843 0.5482 -1.5242 1.5693 -0.5216 1.2928 -0.8007 -0.4383 (:,:,5) = 1.2575 1.7517 -0.6058 0.0287 1.9479 0.1202 -0.6029 -0.0174 -0.5533 1.0998 (:,:,6) = -0.3341 0.0497 0.2022 1.1645 1.1306 -1.0376 -0.6294 0.4023 2.2155 -0.8428 (:,:,7) = -1.9050 -0.0878 -1.3216 -0.7829 -0.0930 0.3349 1.2693 -0.3298 0.4882 0.4263 (:,:,8) = -0.4462 1.2260 0.0387 0.2094 -0.0832 1.4408 2.0849 -0.5376 0.3471 -1.1520 (:,:,9) = 1.2225 0.3516 3.5116 0.6621 0.8052 2.6316 -0.1157 1.3297 0.0241 0.4893 (:,:,10) = 1.3257 -1.1252 -1.2487 1.5519 0.4120 -0.8644 -0.7296 -1.5258 1.2875 0.1905 (:,:,11) = 0.3836 0.6030 0.8254 0.2551 -0.3455 1.1446 -0.6773 -1.3863 -1.5075 -0.5765 (:,:,12) = 0.3761 -0.9105 1.4721 -1.1455 0.4240 -0.1831 0.5730 -2.4002 -0.2211 1.8798 (:,:,13) = -0.2634 -0.5790 -0.2404 -0.9705 1.4386 0.7587 -0.6913 -0.8247 -0.2514 -0.6161 (:,:,14) = -0.0273 0.1439 1.6814 0.2454 0.8269 -1.0881 -1.1424 0.7971 -2.1742 0.8649 (:,:,15) = 0.0594 -2.0908 -0.1723 0.2557 -1.1110 -1.5074 0.1578 0.5286 -0.7027 1.9260 (:,:,16) = -0.3547 0.1481 -0.9297 -1.0064 -0.1334 1.1872 -0.0308 -0.0943 -0.3632 -1.4703 (:,:,17) = 0.0866 0.0515 0.1770 -1.0495 -1.0910 1.2994 -0.1530 -0.1821 -0.1600 1.6377 (:,:,18) = 0.8820 -0.5114 -1.6949 0.1523 0.4375 2.1341 -0.3578 -1.5224 -0.4132 0.3853 (:,:,19) = 0.5756 0.7845 0.5070 -0.0190 -1.6021 -1.7109 0.8970 -2.1029 0.8054 2.3897 (:,:,20) = -0.4548 -0.4863 -1.7089 -0.4617 1.2106 0.5118 0.1166 -0.3795 -0.8231 0.1280 (:,:,21) = -0.3409 -1.1771 -1.0191 0.1713 0.8405 0.3731 -1.0565 -1.0445 -0.0011 -0.9263 (:,:,22) = -0.0527 -1.1203 -1.0325 0.1015 -0.7649 1.2671 0.4507 -0.2430 0.6585 -0.1224 (:,:,23) = 0.2141 1.1805 -1.3787 0.3057 1.5172 0.2990 0.4007 -0.3995 -0.6900 1.3717 (:,:,24) = 1.1456 0.1479 -0.4306 -1.7615 0.8234 0.2880 0.3705 -0.0219 0.2025 -0.8276
permute() and shiftdim() might also be useful.
  2 件のコメント
Connor Mondock
Connor Mondock 2022 年 2 月 4 日
Thanks this is helpful, is there any way this could be done using a function? What would be the inputs and outputs?
Voss
Voss 2022 年 2 月 4 日
All of these examples use built-in functions.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeDirection of Arrival Estimation についてさらに検索

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by