Transpose matrix and your transposition

74 visualizzazioni (ultimi 30 giorni)
AIRTON
AIRTON il 20 Set 2025 alle 7:38
Modificato: David Goodmanson il 21 Set 2025 alle 17:45

How can I transpose Thais Matrix: Matrix = zeros(3500000,3);

Risposta accettata

David Goodmanson
David Goodmanson il 20 Set 2025 alle 7:50
Modificato: David Goodmanson il 21 Set 2025 alle 17:45
HI Airto,
Rather than actually transpose it with the ' (apostrophe) command, you can use
zeros(3,3500000);
The transpose
a = zeros(3.5e6,3);
b = a';
is reasonably fast, (about 17 millisec on my PC). You get up around a = zeros(3.5e8,3), though, then b = a'; takes about 1.5 sec, whereas
b = zeros(3,3.5e8)
is sub-millisec because no actual transpose is being done.
  1 Commento
Walter Roberson
Walter Roberson il 20 Set 2025 alle 10:21
My tests show that
b = a.';
seems to be a hair faster.
a' and a.' produce identical results for real-valued data, but different results for complex-valued data.

Accedi per commentare.

Più risposte (2)

AIRTON
AIRTON il 20 Set 2025 alle 13:51
Modificato: Walter Roberson il 20 Set 2025 alle 19:24
Hi David and Hi Walter
I thank by yours attention. But when I carry out this:
a = zeros(3.5e6,3);
b = a';
or this
b = a.';
I get this:
Cannot display summaries of variables with more than 524288 elements.
How can I resolve this, please
Thank!
  3 Commenti
AIRTON
AIRTON il 20 Set 2025 alle 18:06
Hy Chun
great, very good!
I have got to access the data.
Thank you very much!
David Goodmanson
David Goodmanson il 21 Set 2025 alle 4:05
Hi Chun, what you did aided the OP, but there is something going on with the 6GB estimate. A number in double precision has 64 bits, 8 bytes. So the a or b matrix runs to 3.5e6*3*8 = 84MB and should not be leagues larger with different software or platform.

Accedi per commentare.


AIRTON
AIRTON il 20 Set 2025 alle 19:27
Modificato: Walter Roberson il 20 Set 2025 alle 21:10
Hi David, Walter and Chun
I am here again!
With yours helps I have done this scritp to filter two columns.
clear all
clc
tic
b = 1;
r = zeros(3268760,1);
load ('transp1.mat');
for i = 1:2
z1 = a(a(:,b) == 0, :);
s1 = sum(z1, 1);
s2 = max(s1);
r(b,1) = max(s1);
b = b + 1;
end
toc
Elapsed time is 209.340817 seconds.
My object is to gain to the results in "r" for all columns.
What I want of you is to decrease the time elapsed in the execution of script.
Can you help me please?
thank!

Categorie

Scopri di più su Function Creation in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by