У меня есть текстовый файл D
с 98 строк и 2 столбца. выглядит следующим образом:bsxfun строк вычитания в цикле
10 0.261344
11 0.456167
12 0.668595
2 0.481754
... etc
У меня есть еще один первенствует файл M
с 17 строк и 2 цв.
Я хочу, чтобы вычесть все строки значения от 1-го ряда, то из 2, etc.so я получить что-то вроде этого:
10-11 -0.194823
10-12 -0.407251
... etc
другими словами разница между 1-й строки и все остальное, 2-й ряд и все остальное .. исключая те строки, из которых 1-й столбец имеет те же значения, что и в первом файле M excel 1-го столбца. что делает в общей разнице по сравнению с 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 {:})» не сохраняется ни в какой переменной. Затем напишите небольшой тестовый пример, который начинается с введенных вручную матриц, чтобы у людей было что-то, с чем можно было работать, чтобы проверить/продемонстрировать решения вашей проблемы. – tmpearce