How can I transfer the results of a four-cycle iteration into a matrix with a row for each iteration?

1 visualización (últimos 30 días)
Pietro Fiondella el 21 de Jun. de 2022
Comentada: Karim el 22 de Jun. de 2022
Here is an example of my problem:
I have a Matrix- A (1x24) A[a1,1 a1,2 a1,3 ... a1,24 ], & a vector B[b1,1 b1,2 b1,3 ...b1,7]
i would to multiply each row of A by each element of B and obtain a Matrix C
C=[a11*b11 a12*b11 a13*b11 a14*b11;
a11*b21 a12*b21 a13*b21 a14*b21 a15*b21;
ecc........ ]
I tried this script, but i get only the last iteration as result.
A=[0.246 0.280 0.286 0.301 0.302 0.330 0.397 0.478 0.607 0.651 0.595 0.495 0.546 0.594 0.609 0.608 0.628 0.866 0.944 0.988 0.882 0.831 0.745 0.616];
B=[0.999; 0.992; 0.939; 0.850; 0.810; 0.803; 0.796; 0.792; 0.821; 0.929; 0.990; 1.000];
for i=1:7
C=A*B(i);
end
C
C = 1×24
0.1958 0.2229 0.2277 0.2396 0.2404 0.2627 0.3160 0.3805 0.4832 0.5182 0.4736 0.3940 0.4346 0.4728 0.4848 0.4840 0.4999 0.6893 0.7514 0.7864 0.7021 0.6615 0.5930 0.4903
0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Karim el 21 de Jun. de 2022
hello, if you want to use the for loop you need to index the rows
A=[0.246 0.280 0.286 0.301 0.302 0.330 0.397 0.478 0.607 0.651 0.595 0.495 0.546 0.594 0.609 0.608 0.628 0.866 0.944 0.988 0.882 0.831 0.745 0.616];
B=[0.999; 0.992; 0.939; 0.850; 0.810; 0.803; 0.796; 0.792; 0.821; 0.929; 0.990; 1.000];
C = zeros(size(B,1),size(A,2));
for i = 1:size(B,1)
C(i,:) = A * B(i);
end
% print the result
C
C = 12×24
0.2458 0.2797 0.2857 0.3007 0.3017 0.3297 0.3966 0.4775 0.6064 0.6503 0.5944 0.4945 0.5455 0.5934 0.6084 0.6074 0.6274 0.8651 0.9431 0.9870 0.8811 0.8302 0.7443 0.6154 0.2440 0.2778 0.2837 0.2986 0.2996 0.3274 0.3938 0.4742 0.6021 0.6458 0.5902 0.4910 0.5416 0.5892 0.6041 0.6031 0.6230 0.8591 0.9364 0.9801 0.8749 0.8244 0.7390 0.6111 0.2310 0.2629 0.2686 0.2826 0.2836 0.3099 0.3728 0.4488 0.5700 0.6113 0.5587 0.4648 0.5127 0.5578 0.5719 0.5709 0.5897 0.8132 0.8864 0.9277 0.8282 0.7803 0.6996 0.5784 0.2091 0.2380 0.2431 0.2558 0.2567 0.2805 0.3375 0.4063 0.5160 0.5534 0.5057 0.4208 0.4641 0.5049 0.5176 0.5168 0.5338 0.7361 0.8024 0.8398 0.7497 0.7063 0.6332 0.5236 0.1993 0.2268 0.2317 0.2438 0.2446 0.2673 0.3216 0.3872 0.4917 0.5273 0.4819 0.4010 0.4423 0.4811 0.4933 0.4925 0.5087 0.7015 0.7646 0.8003 0.7144 0.6731 0.6035 0.4990 0.1975 0.2248 0.2297 0.2417 0.2425 0.2650 0.3188 0.3838 0.4874 0.5228 0.4778 0.3975 0.4384 0.4770 0.4890 0.4882 0.5043 0.6954 0.7580 0.7934 0.7082 0.6673 0.5982 0.4946 0.1958 0.2229 0.2277 0.2396 0.2404 0.2627 0.3160 0.3805 0.4832 0.5182 0.4736 0.3940 0.4346 0.4728 0.4848 0.4840 0.4999 0.6893 0.7514 0.7864 0.7021 0.6615 0.5930 0.4903 0.1948 0.2218 0.2265 0.2384 0.2392 0.2614 0.3144 0.3786 0.4807 0.5156 0.4712 0.3920 0.4324 0.4704 0.4823 0.4815 0.4974 0.6859 0.7476 0.7825 0.6985 0.6582 0.5900 0.4879 0.2020 0.2299 0.2348 0.2471 0.2479 0.2709 0.3259 0.3924 0.4983 0.5345 0.4885 0.4064 0.4483 0.4877 0.5000 0.4992 0.5156 0.7110 0.7750 0.8111 0.7241 0.6823 0.6116 0.5057 0.2285 0.2601 0.2657 0.2796 0.2806 0.3066 0.3688 0.4441 0.5639 0.6048 0.5528 0.4599 0.5072 0.5518 0.5658 0.5648 0.5834 0.8045 0.8770 0.9179 0.8194 0.7720 0.6921 0.5723
alternatively, you can do it as a oneliner:
C2 = B .* A
C2 = 12×24
0.2458 0.2797 0.2857 0.3007 0.3017 0.3297 0.3966 0.4775 0.6064 0.6503 0.5944 0.4945 0.5455 0.5934 0.6084 0.6074 0.6274 0.8651 0.9431 0.9870 0.8811 0.8302 0.7443 0.6154 0.2440 0.2778 0.2837 0.2986 0.2996 0.3274 0.3938 0.4742 0.6021 0.6458 0.5902 0.4910 0.5416 0.5892 0.6041 0.6031 0.6230 0.8591 0.9364 0.9801 0.8749 0.8244 0.7390 0.6111 0.2310 0.2629 0.2686 0.2826 0.2836 0.3099 0.3728 0.4488 0.5700 0.6113 0.5587 0.4648 0.5127 0.5578 0.5719 0.5709 0.5897 0.8132 0.8864 0.9277 0.8282 0.7803 0.6996 0.5784 0.2091 0.2380 0.2431 0.2558 0.2567 0.2805 0.3375 0.4063 0.5160 0.5534 0.5057 0.4208 0.4641 0.5049 0.5176 0.5168 0.5338 0.7361 0.8024 0.8398 0.7497 0.7063 0.6332 0.5236 0.1993 0.2268 0.2317 0.2438 0.2446 0.2673 0.3216 0.3872 0.4917 0.5273 0.4819 0.4010 0.4423 0.4811 0.4933 0.4925 0.5087 0.7015 0.7646 0.8003 0.7144 0.6731 0.6035 0.4990 0.1975 0.2248 0.2297 0.2417 0.2425 0.2650 0.3188 0.3838 0.4874 0.5228 0.4778 0.3975 0.4384 0.4770 0.4890 0.4882 0.5043 0.6954 0.7580 0.7934 0.7082 0.6673 0.5982 0.4946 0.1958 0.2229 0.2277 0.2396 0.2404 0.2627 0.3160 0.3805 0.4832 0.5182 0.4736 0.3940 0.4346 0.4728 0.4848 0.4840 0.4999 0.6893 0.7514 0.7864 0.7021 0.6615 0.5930 0.4903 0.1948 0.2218 0.2265 0.2384 0.2392 0.2614 0.3144 0.3786 0.4807 0.5156 0.4712 0.3920 0.4324 0.4704 0.4823 0.4815 0.4974 0.6859 0.7476 0.7825 0.6985 0.6582 0.5900 0.4879 0.2020 0.2299 0.2348 0.2471 0.2479 0.2709 0.3259 0.3924 0.4983 0.5345 0.4885 0.4064 0.4483 0.4877 0.5000 0.4992 0.5156 0.7110 0.7750 0.8111 0.7241 0.6823 0.6116 0.5057 0.2285 0.2601 0.2657 0.2796 0.2806 0.3066 0.3688 0.4441 0.5639 0.6048 0.5528 0.4599 0.5072 0.5518 0.5658 0.5648 0.5834 0.8045 0.8770 0.9179 0.8194 0.7720 0.6921 0.5723
3 comentariosMostrar 1 comentario más antiguoOcultar 1 comentario más antiguo
Pietro Fiondella el 21 de Jun. de 2022
I mean that i wloud obtain a matrix E that should be with every row filled with the moltiplication between eac row af C and each element of D
A=[0.246 0.280 0.286 0.301 0.302 0.330 0.397 0.478 0.607 0.651 0.595 0.495 0.546 0.594 0.609 0.608 0.628 0.866 0.944 0.988 0.882 0.831 0.745 0.616];
B=[0.999; 0.992; 0.939; 0.850; 0.810; 0.803; 0.796; 0.792; 0.821; 0.929; 0.990; 1.000];
C = zeros(size(B,1),size(A,2));
for i = 1:size(B,1)
C(i,:) = A * B(i);
end
E=[c1,1*d11 c1,2*d1,1 c1,3*d1,1.....;
c1,1*d1,2 c1,2*d1,2 c1,3*d1,1......
............................................
c2,1*d1,1 c2,2*d1,1 c2,3*d1,1
c2,1*d2,1 c2,1*d2,1 c2,3*d2,1
and so on ]
I was able to do it only by this loop but i'm searching for an easyer way
D=[ 0.9990 0.9920 0.9390 0.8500 0.8100 0.8030 0.7960 0.7920 0.8210 0.9290 0.9900 1.0000];
for j=1:12;
E1=C*D(j);
cell_E1{j}=E1;
end
E=[cell_E1{1,1};cell_E1{1,2};cell_E1{1,3};cell_E1{1,4};cell_E1{1,5};cell_E1{1,6};cell_E1{1,7};cell_E1{1,8};cell_E1{1,9};cell_E1{1,10};cell_E1{1,11};cell_E1{1,12}];
A=cell_E1{1,1}
A = 12×24
0.2455 0.2794 0.2854 0.3004 0.3014 0.3293 0.3962 0.4770 0.6058 0.6497 0.5938 0.4940 0.5449 0.5928 0.6078 0.6068 0.6267 0.8643 0.9421 0.9860 0.8802 0.8293 0.7435 0.6148 0.2438 0.2775 0.2834 0.2983 0.2993 0.3270 0.3934 0.4737 0.6015 0.6451 0.5896 0.4905 0.5411 0.5887 0.6035 0.6025 0.6224 0.8582 0.9355 0.9791 0.8741 0.8235 0.7383 0.6105 0.2308 0.2627 0.2683 0.2824 0.2833 0.3096 0.3724 0.4484 0.5694 0.6107 0.5581 0.4643 0.5122 0.5572 0.5713 0.5703 0.5891 0.8124 0.8855 0.9268 0.8274 0.7795 0.6989 0.5778 0.2089 0.2378 0.2429 0.2556 0.2564 0.2802 0.3371 0.4059 0.5154 0.5528 0.5052 0.4203 0.4636 0.5044 0.5171 0.5163 0.5333 0.7354 0.8016 0.8390 0.7490 0.7056 0.6326 0.5231 0.1991 0.2266 0.2314 0.2436 0.2444 0.2670 0.3212 0.3868 0.4912 0.5268 0.4815 0.4005 0.4418 0.4807 0.4928 0.4920 0.5082 0.7008 0.7639 0.7995 0.7137 0.6724 0.6028 0.4985 0.1973 0.2246 0.2294 0.2415 0.2423 0.2647 0.3185 0.3835 0.4869 0.5222 0.4773 0.3971 0.4380 0.4765 0.4885 0.4877 0.5038 0.6947 0.7573 0.7926 0.7075 0.6666 0.5976 0.4942 0.1956 0.2227 0.2274 0.2394 0.2402 0.2624 0.3157 0.3801 0.4827 0.5177 0.4731 0.3936 0.4342 0.4724 0.4843 0.4835 0.4994 0.6886 0.7507 0.7857 0.7014 0.6608 0.5924 0.4898 0.1946 0.2215 0.2263 0.2382 0.2389 0.2611 0.3141 0.3782 0.4803 0.5151 0.4708 0.3916 0.4320 0.4700 0.4818 0.4811 0.4969 0.6852 0.7469 0.7817 0.6978 0.6575 0.5894 0.4874 0.2018 0.2297 0.2346 0.2469 0.2477 0.2707 0.3256 0.3920 0.4978 0.5339 0.4880 0.4060 0.4478 0.4872 0.4995 0.4987 0.5151 0.7103 0.7742 0.8103 0.7234 0.6816 0.6110 0.5052 0.2283 0.2599 0.2654 0.2793 0.2803 0.3063 0.3684 0.4436 0.5633 0.6042 0.5522 0.4594 0.5067 0.5513 0.5652 0.5643 0.5828 0.8037 0.8761 0.9169 0.8186 0.7712 0.6914 0.5717
Karim el 22 de Jun. de 2022
yes you can find the code below, both using a for loop and as one liners.
A = [0.246 0.280 0.286 0.301 0.302 0.330 0.397 0.478 0.607 0.651 0.595 0.495 0.546 0.594 0.609 0.608 0.628 0.866 0.944 0.988 0.882 0.831 0.745 0.616];
B = [0.999; 0.992; 0.939; 0.850; 0.810; 0.803; 0.796; 0.792; 0.821; 0.929; 0.990; 1.000];
C = zeros(size(B,1),size(A,2));
for i = 1:numel(B)
C(i,:) = A * B(i);
end
D = [0.9990 0.9920 0.9390 0.8500 0.8100 0.8030 0.7960 0.7920 0.8210 0.9290 0.9900 1.0000];
E = zeros(numel(D)*size(C,1), size(C,2));
for i = 1:numel(D)
currIdx = (i-1)*size(C,1)+(1:size(C,1));
E(currIdx,:) = C*D(i);
end
E
E = 144×24
0.2455 0.2794 0.2854 0.3004 0.3014 0.3293 0.3962 0.4770 0.6058 0.6497 0.5938 0.4940 0.5449 0.5928 0.6078 0.6068 0.6267 0.8643 0.9421 0.9860 0.8802 0.8293 0.7435 0.6148 0.2438 0.2775 0.2834 0.2983 0.2993 0.3270 0.3934 0.4737 0.6015 0.6451 0.5896 0.4905 0.5411 0.5887 0.6035 0.6025 0.6224 0.8582 0.9355 0.9791 0.8741 0.8235 0.7383 0.6105 0.2308 0.2627 0.2683 0.2824 0.2833 0.3096 0.3724 0.4484 0.5694 0.6107 0.5581 0.4643 0.5122 0.5572 0.5713 0.5703 0.5891 0.8124 0.8855 0.9268 0.8274 0.7795 0.6989 0.5778 0.2089 0.2378 0.2429 0.2556 0.2564 0.2802 0.3371 0.4059 0.5154 0.5528 0.5052 0.4203 0.4636 0.5044 0.5171 0.5163 0.5333 0.7354 0.8016 0.8390 0.7490 0.7056 0.6326 0.5231 0.1991 0.2266 0.2314 0.2436 0.2444 0.2670 0.3212 0.3868 0.4912 0.5268 0.4815 0.4005 0.4418 0.4807 0.4928 0.4920 0.5082 0.7008 0.7639 0.7995 0.7137 0.6724 0.6028 0.4985 0.1973 0.2246 0.2294 0.2415 0.2423 0.2647 0.3185 0.3835 0.4869 0.5222 0.4773 0.3971 0.4380 0.4765 0.4885 0.4877 0.5038 0.6947 0.7573 0.7926 0.7075 0.6666 0.5976 0.4942 0.1956 0.2227 0.2274 0.2394 0.2402 0.2624 0.3157 0.3801 0.4827 0.5177 0.4731 0.3936 0.4342 0.4724 0.4843 0.4835 0.4994 0.6886 0.7507 0.7857 0.7014 0.6608 0.5924 0.4898 0.1946 0.2215 0.2263 0.2382 0.2389 0.2611 0.3141 0.3782 0.4803 0.5151 0.4708 0.3916 0.4320 0.4700 0.4818 0.4811 0.4969 0.6852 0.7469 0.7817 0.6978 0.6575 0.5894 0.4874 0.2018 0.2297 0.2346 0.2469 0.2477 0.2707 0.3256 0.3920 0.4978 0.5339 0.4880 0.4060 0.4478 0.4872 0.4995 0.4987 0.5151 0.7103 0.7742 0.8103 0.7234 0.6816 0.6110 0.5052 0.2283 0.2599 0.2654 0.2793 0.2803 0.3063 0.3684 0.4436 0.5633 0.6042 0.5522 0.4594 0.5067 0.5513 0.5652 0.5643 0.5828 0.8037 0.8761 0.9169 0.8186 0.7712 0.6914 0.5717
or as a one liner
C = B.*A;
E = kron(D',C)
E = 144×24
0.2455 0.2794 0.2854 0.3004 0.3014 0.3293 0.3962 0.4770 0.6058 0.6497 0.5938 0.4940 0.5449 0.5928 0.6078 0.6068 0.6267 0.8643 0.9421 0.9860 0.8802 0.8293 0.7435 0.6148 0.2438 0.2775 0.2834 0.2983 0.2993 0.3270 0.3934 0.4737 0.6015 0.6451 0.5896 0.4905 0.5411 0.5887 0.6035 0.6025 0.6224 0.8582 0.9355 0.9791 0.8741 0.8235 0.7383 0.6105 0.2308 0.2627 0.2683 0.2824 0.2833 0.3096 0.3724 0.4484 0.5694 0.6107 0.5581 0.4643 0.5122 0.5572 0.5713 0.5703 0.5891 0.8124 0.8855 0.9268 0.8274 0.7795 0.6989 0.5778 0.2089 0.2378 0.2429 0.2556 0.2564 0.2802 0.3371 0.4059 0.5154 0.5528 0.5052 0.4203 0.4636 0.5044 0.5171 0.5163 0.5333 0.7354 0.8016 0.8390 0.7490 0.7056 0.6326 0.5231 0.1991 0.2266 0.2314 0.2436 0.2444 0.2670 0.3212 0.3868 0.4912 0.5268 0.4815 0.4005 0.4418 0.4807 0.4928 0.4920 0.5082 0.7008 0.7639 0.7995 0.7137 0.6724 0.6028 0.4985 0.1973 0.2246 0.2294 0.2415 0.2423 0.2647 0.3185 0.3835 0.4869 0.5222 0.4773 0.3971 0.4380 0.4765 0.4885 0.4877 0.5038 0.6947 0.7573 0.7926 0.7075 0.6666 0.5976 0.4942 0.1956 0.2227 0.2274 0.2394 0.2402 0.2624 0.3157 0.3801 0.4827 0.5177 0.4731 0.3936 0.4342 0.4724 0.4843 0.4835 0.4994 0.6886 0.7507 0.7857 0.7014 0.6608 0.5924 0.4898 0.1946 0.2215 0.2263 0.2382 0.2389 0.2611 0.3141 0.3782 0.4803 0.5151 0.4708 0.3916 0.4320 0.4700 0.4818 0.4811 0.4969 0.6852 0.7469 0.7817 0.6978 0.6575 0.5894 0.4874 0.2018 0.2297 0.2346 0.2469 0.2477 0.2707 0.3256 0.3920 0.4978 0.5339 0.4880 0.4060 0.4478 0.4872 0.4995 0.4987 0.5151 0.7103 0.7742 0.8103 0.7234 0.6816 0.6110 0.5052 0.2283 0.2599 0.2654 0.2793 0.2803 0.3063 0.3684 0.4436 0.5633 0.6042 0.5522 0.4594 0.5067 0.5513 0.5652 0.5643 0.5828 0.8037 0.8761 0.9169 0.8186 0.7712 0.6914 0.5717

Iniciar sesión para comentar.

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by