Subtract data from two columns and show result in 3rd column
2 次查看(过去 30 天)
显示 更早的评论
I have the following data in an excel sheet
A B C
736 373
734 371
725 364
719 361
711 353
706 347
699 342
689 337
680 327
676 318
So basically I want to run this as A(1) - B(1),A(2) - B(2)..A(n) -B(n) and it should create the outputs at C1, C2...Cn respectively. Can anyone help me on this?
4 个评论
Jasmine
2014-7-23
编辑:Jasmine
2014-7-23
Yes, this is possible. But why wouldn't you just use Excel?
Anyway you need to read the data into MATLAB
data = xlsread('filename')
for i=1:size(data,1)
output(i) = data(i,1)-data(i,2)
end
fulldata = cat(2,data,output)
xlswrite('filename',fulldata)
Or something like that anyway... syntax may be slightly off, as I haven't tested it.
Benjamin
2019-4-15
编辑:Benjamin
2019-4-15
thanks for this helpful answer.
But in every loop, if the size of the matrix (output here) changes Matlab gives error of different matrix sizes. Is there anysolution for that.
FYI: my Matlab code generates a matrix of [A] = n*2 and in every loop (for i = 1:10) n changes. I would like to store all A results in another B matrix.
采纳的回答
Joseph Cheng
2014-7-23
Read in the data using xlsread() and write it with xlswrite
A = xlsread(____);
A(:,3) = A(:,1)-A(:,2);
xlswrite(____)
7 个评论
Joseph Cheng
2014-7-23
Why is there a for loop? does dstfile change base on the loop? Also if it outputs is in AC, AD, and AE what is the size of the Y array? is it one column or 3?
更多回答(1 个)
KRUNAL
2014-7-23
2 个评论
Joseph Cheng
2014-7-23
because in your if statement you're not going through each Y index. additionally the step above you're going Y = num2str so you're converting it to a string and ask the "STRING" if it is greater than 300.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Spreadsheets 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!