У меня есть текстовый файл D
с 98 строками и 2 столбцами. выглядит так:
10 0,261344
11 0,456167
12 0,668595
2 0,481754
... и т.д.
У меня есть еще один файл Excel M
с 17 строками и 2 столбцами.
Я хочу вычесть значения всех строк из 1-й строки, затем из 2 и т. д., поэтому я получаю что-то вроде этого:
10-11 -0,194823
10-12 -0,407251
... и т.д.
другими словами, разница между 1-й строкой и всеми остальными, 2-й строкой и всеми остальными ... за исключением тех строк, в которых 1-й столбец имеет те же значения, что и во 2-м столбце 1-го файла M excel. что делает общую разницу по сравнению с 81 строкой.
я пытался использовать это:
M = xlsread('...');
FSumID=fopen(D);
MatrixSub = loadD);
m = textscan(FSumID,'%d %f');
horzcat(m{:})
NewData = M(:,1)
D_size=size(D);
for i=1:D_size
if (ptvBodyDist(:,1)~=NewData(i))
%for calculating
DVec = bsxfun(@minus, ((m{i,2})), (m{i,2}));
% когда я проверяю это, он дает только один цикл со всеми нулями (98,1), в то время как мне нужно (((98-17) ^ 2,1). Мне нужно изменить последнюю часть выражения, чтобы получить то, что я хочу, но я' я застрял с bsxfun, я не знаю, как сделать правильное выражение, чтобы вычесть все строки.
Я новичок в Matlab, любая помощь будет очень признательна. также, если бы вы могли предложить некоторые руководства или учебные пособия, помимо помощи по математике. Большое спасибо.
horzcat(m{:})
вообще не сохраняется ни в какую переменную. Затем напишите небольшой тестовый пример, который начинается с матриц, введенных вручную, чтобы людям было с чем поработать для тестирования/демонстрации решений вашей проблемы. - person tmpearce   schedule 11.02.2013