How to sum unequal matrices of sizes 10X37 and 10X33?

3 次查看(过去 30 天)
Hi, I have unequal matrices, with sizes 10X37 and 10X33, I usually manually fill in the difference between the 37 and 33 with zeros to make it work. However, I have thousands of similar files, which makes the process quite lengthy.
Can anyone please help me in this? I have attached the files to be summed, and provided my code below.
Thank you very much.
P1=importdata('Pier1.txt');
P2=importdata('Pier2.txt');
P3=importdata('Pier3.txt');
Force = [P1]+[P2]+[P3];

采纳的回答

KSSV
KSSV 2018-2-14
YOu have an option of changing all the matrices to same size by interpolation. Have a look on imresize, with this you can get all matrices to your desired size.
P1 = rand(10,37) ;
P2 = rand(10,33) ;
P1 = imresize(P1,[10 33]) ;
  2 个评论
Ismail Qeshta
Ismail Qeshta 2018-2-14
Thank you KSSV. Unfortunately, this option can't work for my type of analysis. I only need zeroes in the remaining columns to keep the consistency.
Ismail Qeshta
Ismail Qeshta 2018-2-14
编辑:Ismail Qeshta 2018-2-14
Thanks again KSSV. I have got this code from other discussion on similar topic. The code was provided by @Jan Simon. I am just sharing it here for your kind reference and information: The full discussion can be viewed through this link: https://au.mathworks.com/matlabcentral/answers/31292-adding-uneven-matrices#answer_39796
a = ones(150,91)*2
b = ones(141,100)*3
c = AddFill(a, b);
function c = AddFill(a, b);
sa = size(a);
sb = size(b);
c = zeros(max(sa, sb)); % Pre-allocate
c(1:sa(1), 1:sa(2)) = a; % Assign a
c(1:sb(1), 1:sb(2)) = c(1:sb(1), 1:sb(2)) + b; % Add b

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by