MATLAB Matlab - I want to create row matrix

  • Thread starter Thread starter thailovejj
  • Start date Start date
  • Tags Tags
    Matlab Matrix Row
AI Thread Summary
The discussion focuses on creating a row matrix A from multiple row matrices B_1 through B_7. The initial approach involves using the eval function to dynamically create B matrices from a loaded dataset, which is criticized for leading to complex and hard-to-maintain code. Two alternative methods are proposed: the first suggests using a cell array to store each B matrix, allowing for easier manipulation and access, while the second method recommends directly concatenating the rows from the dataset into matrix A without the need for intermediate B matrices, provided they are of the same length. This approach simplifies the code and enhances readability.
thailovejj
Messages
1
Reaction score
0
I want to create row matrix A by using row matrix B_1 , B_2 , B_3 ,...,B_7

Example

B_1 = [1 2 3];
B_2 = [6 9 3];
B_3 = [4 7 5];
.
.
.
B_7 = [9 6 3];

Then A = [1 2 3 6 9 3 4 7 5 ... 9 6 3];

My way is

mea = input('Insert MEA No. :');

y = load(sprintf('%d.txt',mea),'-ascii');

for i=1:7
eval(['B_' num2str(i) '=y(i,:)']);
end

above code is create matrix B_1 - B_7

and Then

A = [B_1 B_2 B_3 ... B_7];

but I want the code which can use for other case.

Thank you
 
Last edited:
Physics news on Phys.org
If you start using the eval statement, you'll forever be stuck using it later on which makes code very difficult to understand.

Two alternatives would be to create a cell array:

A = [];
for i=1:7
B{i}=y(i,:);
A = [A B{i}]
end

or, if the B vectors are all the same length, then why use B at all?:

A = [];
for i=1:7
A = [A y(i,:)];
end
 
Back
Top