include all rows matrix in []

2 visualizzazioni (ultimi 30 giorni)
piero
piero il 5 Giu 2023
>> size(z)
ans =
5668 73
BB=[z(:,1),z(:,2),z(:,3)....z(:,73]
i need in [] include all rows z
how can i do it?
  2 Commenti
Paul
Paul il 5 Giu 2023
Are you sure the problem is stated correctly? As written, BB will be the same as z.
Here's a small example:
z = rand(2,3)
z = 2×3
0.0201 0.5622 0.2440 0.3879 0.1390 0.2752
BB = [z(:,1),z(:,2),z(:,3)]
BB = 2×3
0.0201 0.5622 0.2440 0.3879 0.1390 0.2752
piero
piero il 5 Giu 2023
Modificato: piero il 5 Giu 2023
ok..i tried to transfer my problem to a wrong example..I post my main problem hoping to make me understand with few examples
Sis is a struct
>> size(Sis)
ans =
1 73
I want to add field Matrix (z)
size(z)
ans =
5668 73
[Sis.h]=deal(z)
I can synthesize it with this code
for i=1:length(Sis)
Sis(i).New=F(:,i);
end
(but i want to avoid cicle for)

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 5 Giu 2023
zc = num2cell(z,1); %1 --> preserve first dimension
[Sis.h] = zc{:}; %or [Sis.h] = deal(zc{:});

Più risposte (1)

Paul
Paul il 5 Giu 2023
Modificato: Paul il 5 Giu 2023
One way ....
Create example data
Sis.a = 1;
Sis = repmat(Sis,73,1);
z = rand(5668,73);
The code
[Sis.z] = cell2struct(num2cell(z,1),'z',1).z;
Verify
isequal([Sis.z],z)
ans = logical
1
  1 Commento
Walter Roberson
Walter Roberson il 5 Giu 2023
Sis.a = 1;
Sis = repmat(Sis,73,1);
z = rand(5668,73);
[Sis.z] = struct('z', num2cell(z,1)).z;
isequal([Sis.z],z)
ans = logical
1

Accedi per commentare.

Categorie

Scopri di più su Images 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