Я очень простой пользователь и мало знаю о командах, используемых в C, поэтому, пожалуйста, несите меня ... Я не могу использовать очень сложные коды. У меня есть некоторые знания в библиотеках stdio.h и ctype.h, но об этом. У меня есть матрица в txt-файле, и я хочу загрузить матрицу на основе ввода числа строк и столбцов.Как извлечь подматрицу 2x2 из большей матрицы
Например, у меня есть матрица размером 5 на 5. Я хочу извлечь конкретную подматрицу 2 на 2, как я могу это сделать?
Я создал вложенный цикл с помощью:
FILE *sample
sample=fopen("randomfile.txt","r");
for(i=0;i<rows;i++){
for(j=0;j<cols;j++){
fscanf(sample,"%f",&matrix[i][j]);
}
fscanf(sample,"\n",&matrix[i][j]);
}
fclose(sample);
К сожалению, код не работает .. Если у меня есть эта матрица:
5.00 4.00 5.00 6.00
5.00 4.00 3.00 25.00
5.00 3.00 4.00 23.00
5.00 2.00 352.00 6.00
и ввод 3 для строки и 3 для столбца, я получить:
5.00 4.00 5.00
6.00 5.00 4.00
3.00 25.00 5.00
Не только это не будет в 2 по 2 подматрицы, но даже если бы я хотел первые 3 строки и первые 3 столбцы, его не печатают правильно ....
Мне нужно начинать со строки 3 и col 3, а затем взять подпрограмму 2 на 2!
я должна была закончиться с:
4.00 23.00
352.00 6.00
Я слышал, что я могу использовать fgets и sscanf для достижения этой цели. Вот мой пробный код:
fgets(garbage,1,fin);
sscanf(garbage,"\n");
Но это не работает либо :(
Что я делаю неправильно
Пожалуйста, помогите Спасибо
Почему вы удалите этот вопрос в последний раз вы отправили его? http://stackoverflow.com/questions/2796071/how-to-extract-a-submatrix-from-a-matrix. Если вы удалите свои вопросы, это уменьшит вероятность того, что люди захотят добавить время, чтобы дать хорошие ответы. –
У меня была ошибка в вопросе, мне нужна подматрица 2by2 (ошибка с моей стороны) – NLed
В будущем, если в вашем вопросе есть ошибка, вам лучше всего исправить это, вместо того чтобы сделать совершенно новое сообщение. – dbyrne