Multiplying elements from various tables to create a third table

4 visualizzazioni (ultimi 30 giorni)
Hi there,
I'm a beginner to Matlab, and I have a very shaky foundation. However, I need the help of Matlab to do some analysis. I would highly appreciate your help!
I have two types of data sets I'm drawing from
(for n =1:82 tables) Table A_n(70080 x 4)
Table B(82 x 1)
Basically, I need to individually multiple the 'nth' element in Table B by the second column of Table A_n.
This should result in Table C (70080 x 82).
I know I can produce the variables for each column vector of Table C by inputting this:
Col_1 = A_1(:,2)*B(1,1);
Col_2 = A_2(:,2)*B(2,1);
...
Col_n = A_n(:,2)*B(n,1);
but it is manually taxing. Furthermore, I have no idea how to input these into an actual table. This would require some sort of concantenation?
Initially I wanted to dynamically create these variables but I have read elsewhere that doing so is actually quite troublesome.
Is there any way for me to input these variables directly into a table?
And to do this all through a for loop...
Thanks!
  1 Commento
Christina Hong
Christina Hong il 28 Lug 2020
In the follow script, im getting close to my desired result
HOWEVER in the bold/italic/underlined section im trying to obtain the column vector of one table and the element of the other, but instead what I get returned is a string. How will I be able to obtain actual values?!
>> myFilenames = cell(8,1);
for i = 1:8
str = strcat('1000YearReturn_300deg_Story',' ', num2str(i),'.txt');
myFilenames{i} = str;
load(myFilenames{i});
end
>> myFilenames = cell(8,1);
momentY = cell(70080,1);
for i = 1:8
str = strcat('1000YearReturn_300deg_Story',' ', num2str(i),'.txt');
myFilenames{i} = str;
load(myFilenames{i});
story_i = strcat('X1000YearReturn_300deg_Story', ' ', num2str(i), '(:,2)');
refHeight = strcat('Referenceheights(', ' ', num2str(i), ',1)');
momentY{i} = story_i*refHeight;
mY = momentY{i};
T = [T mY];
end

Accedi per commentare.

Risposta accettata

Christina Hong
Christina Hong il 30 Lug 2020
I was able to find the answer to my problem, successfully creating 3 70080x82 tables and using a loop to load in all 82 files
>> load Referenceheights.txt
myFilenames = cell(82,1);
My = [];
Mx = [];
Mz = [];
for i = 1:82
str = strcat('1000YearReturn_300deg_Story',' ', num2str(i),'.txt');
myFilenames{i} = str;
load(myFilenames{i});
S = load(myFilenames{i});
My(:,i) = S(:,2)*Referenceheights(i,1);
Mx(:,i) = S(:,3)*-Referenceheights(i,1);
Mz(:,i) = S(:,4);
end

Più risposte (1)

Mario Malic
Mario Malic il 28 Lug 2020
Check if it gives correct output.
C = (A(:,2)'.*B)';
  4 Commenti
Christina Hong
Christina Hong il 29 Lug 2020
Hi Mario,
I will compile all 82 resultant column vectors from Table A(:,2) x Table B(n,1) to form ONE table C with 82 columns.
Mario Malic
Mario Malic il 29 Lug 2020
Modificato: Mario Malic il 29 Lug 2020
The line that I wrote gives you the Variable C with (70080 x 82).

Accedi per commentare.

Categorie

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