Прежде всего, вы не определяете свою функцию правильно, так как функция не знает, что такое M
(если только это не глобально, но я сомневаюсь).
В любом языке программирования вам нужно указать функцию, с которой переменные будут работать. Это не Matlab. В Matlab вы будете делать это так:
function mean_DNA_Microarray = Calc_mean_DNA_Microarray(M) % Look! we are telling him what M is!
mean_DNA_Microarray = M - ones(5,25)*mean(M(:,25))
end
Затем вы хотите, чтобы все функции из другого места вам нужно будет просто ввести свое имя и передать в аргументы, в этом случае, что внутри функции будет называться M
clear;
clc;
% Test code
Mnameoutofthefunction=rand(100,100);
DNAmean = DNA_Microarray(Mnameoutofthefunction); % here we are calling it!
Не забудьте сохранить функцию functionname.m, в вашем случае DNA_Microarray.m, иначе Matlab обыкновение знать, какой он есть.
Но я настоятельно рекомендую вам прочитать книгу о Matlab или просто о программировании в целом, поскольку, похоже, вы могли бы воспользоваться некоторым базовым введением.
После @ am304 предложение, здесь вы можете найти хорошие учебники:
http://www.mathworks.co.uk/academia/student_center/tutorials/
EDIT То, что вы хотите сделать, это создать функцию следующим образом:
function mean_DNA_Microarray = Calc_mean_DNA_Microarray(M) % Look! we are telling him what M is!
mean_DNA_Microarray = M - ones(5,25)*mean(M(:,25))
end
И затем, внутри вашей функции DNA_Microarray вызов Calc_mean_DNA_Microarray с вводом M
? Вы пытались ввести имя функции/скрипта? –
Вот код, который я написал: function mean_DNA_Microarray = DNA_Microarray C = M - единицы (5,25) * mean (M (:, 25)) конец, где DNA_Microarray - это имя сценария, который я пытаюсь позвонить – Raymond
Редактировать свой вопрос с помощью кода, без разломов строк, это не имеет смысла –