input: Write a function to implement a supervised learning algorithm in Python for a classification task using the iris dataset. The function should load the data, split it into training and test sets, preprocess the data, define the model, fit the model to the training set, make predictions on the test set, and evaluate the model's performance. The function should return the confusion matrix.
  
  assert supervised_classification('iris.csv')==confusion_matrix([0, 0, 0, 1, 1, 1, 2, 2, 2, 2], [0, 0, 1, 1, 1, 1, 2, 2, 2, 2])
  assert supervised_classification('another_iris.csv')==confusion_matrix([2, 0, 2, 0, 1, 0, 2, 0, 2, 2], [2, 0, 2, 0, 1, 0, 2, 0, 2, 2])
  assert supervised_classification('empty.csv')==None
output: 
  def supervised_classification(filename):
      try:
          import pandas as pd
          from sklearn.model_selection import train_test_split
          from sklearn.preprocessing import StandardScaler
          from sklearn.svm import SVC
          from sklearn.metrics import confusion_matrix
  
          data = pd.read_csv(filename)
          X = data.iloc[:, :-1]
          y = data.iloc[:, -1]
  
          X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
  
          scaler = StandardScaler()
          X_train = scaler.fit_transform(X_train)
          X_test = scaler.transform(X_test)
  
          model = SVC(kernel='linear')
          model.fit(X_train, y_train)
  
          y_pred = model.predict(X_test)
  
          return confusion_matrix(y_test, y_pred)
      except Exception as e:
          return None
  