Я собрал таблицу с тремя столбцами в виде CSV-файла, и я хочу прочитать каждый столбец в другом массиве. Я посмотрел в файлах справки Scilab и в других местах на этом сайте, и это выглядит как это должно работать:Прочитайте таблицу из .csv в несколько массивов в SciLab
e=zeros(641,1) //Initialise array of energy values
P=zeros(641,1) //Initialise array of Power values
mu=zeros(641,1) //Initialise array of attenuation values
clc //Clear console
MYDATA = read_csv ('C:\Users\ID914317\Box Sync\PhD\Data\power_atten.csv') //read in array of energies, powers and attenuation coefficients
Z=evstr(MYDATA) //evaluate array of strings into numerical values
disp(Z) //output array to console (debug)
for i=1:641 //loop through number of rows
e(i)=Z(1,i) //assign column 1 values to array of energies
P(i)=Z(2,i) //assign column 2 values to array of powers
mu(i)=Z(3,i) //assign column 3 values to array of attenuations
end
disp(e)
disp(P)
disp(mu)
Всякий раз, когда я пытаюсь запустить это, я получаю следующее сообщение об ошибке в консоли:
e(i)=Z(1,i) //assign column 1 values to array of energies
!--error 21
Invalid index.
at line 10 of exec file called by :
lab\absorption interpolation.sce', -1
В основном я преподаю в SciLab, поэтому любая помощь в отношении того, что я делаю неправильно, будет очень признательна!
Зачем вам нужен цикл вообще? Более простой и быстрый: e = Z (1: 641,1); Р = Z (1: 641,2); му = Z (1: 641,3); – Attila